diff options
Diffstat (limited to 'tutorial.sh')
| -rwxr-xr-x | tutorial.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tutorial.sh b/tutorial.sh new file mode 100755 index 0000000..e598612 --- /dev/null +++ b/tutorial.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# Run a small tutorial on basic bp functionality + +tmpfile="$(mktemp /tmp/bp-tutorial.XXXXXX)" +trap 'rm "$tmpfile"' EXIT + +for t in $([ $# -gt 0 ] && echo "$@" || ls -v tests/*.sh); do + echo + printf "\033[1m" + sed -n 's/^# //p' "$t" + printf "\033[0m" + printf "\033[33;1mGiven these lines: Give this output:\033[0m\n" + diff -y -W60 --color=always "${t/.sh/.in}" "${t/.sh/.out}" + while true; do + printf "\n\033[1mbp pattern: \033[0m" + read -r pat + printf "\033[0;2mRunning: \033[32m%s\033[0m\n\n" "bp -p '$pat'" + printf "\033[33;1mExpected output: Your pattern's output:\033[0m\n" + bp -p "$pat" < "${t/.sh/.in}" 2>"$tmpfile" | diff -y -W60 --color=always "${t/.sh/.out}" - && break + cat "$tmpfile" + printf "\n\033[0;1;31mSorry, try again!\033[0m\n" + done + printf "\n\033[0;1;32mCorrect!\033[0m\n" +done |
