#!/bin/bash # Minimum viable working example! echo echo " _ _ _ " echo " ___(_) __ _| (_)_ __ __ _ ___ " echo " |_ | |/ _' | | | '_ \ / _' / __| " echo " / /| | (_| | | | | | | (_| \__ \ " echo " /___|_|\__, |_|_|_| |_|\__, |___/ " echo " |___/ |___/ " echo # Capture terminal escape sequences (ANSI) for formatting fmt_err=$( tput setaf 1 ) # red foreground fmt_yay=$( tput setaf 2 ) # green foreground fmt_off=$( tput sgr0 ) # reset colors/effects # TODO: most of this belongs in a generalized function if grep -q "I AM NOT DONE" 01_hello.zig then echo echo "* Exercise: Hello world *" result=$(zig run 01_hello.zig 2>&1) result_status=$? echo ========================================================================= echo "$result" echo ========================================================================= if [[ $result_status -eq 0 ]] then printf "${fmt_yay}Zig was able to compile your submission.${fmt_off}\n" else printf "${fmt_err}Uh oh! Looks like there was an error.${fmt_off}\n" exit fi if [[ $result == *Hello*Goodbye* ]] then printf "${fmt_yay}Excellent! I see that you're printing both Hello and Goodbye!${fmt_off}\n" else printf "${fmt_err}It seems to compile, but...${fmt_off}\n" exit fi echo "Now you're ready to move on!" echo "Delete the line I AM NOT DONE from the source file when you're ready" echo "to continue." exit else # end of exercise one - I AM NOT DONE is removed! printf "${fmt_yay}DONE - Hello world${fmt_off}\n" fi echo echo "* Exercise: Hello test *" echo echo "TODO: this and other exercises :-)"