bp/tutorial.sh

26 lines
940 B
Bash
Raw Normal View History

2021-08-28 14:26:32 -07:00
#!/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"
2021-09-07 13:39:11 -07:00
printf "\033[m"
printf "\033[33;1mGiven these lines: Give this output:\033[m\n"
2021-08-28 14:26:32 -07:00
diff -y -W60 --color=always "${t/.sh/.in}" "${t/.sh/.out}"
while true; do
2022-04-09 11:30:50 -07:00
printf "\n\033[1m$ bp --pattern ''\033[D\033[m"
2021-08-28 14:26:32 -07:00
read -r pat
2022-04-09 11:30:50 -07:00
pat="${pat%\'}"
2021-09-07 13:39:11 -07:00
printf "\033[0;2mRunning: \033[32m%s\033[m\n\n" "bp -p '$pat'"
printf "\033[33;1mExpected output: Your pattern's output:\033[m\n"
2021-08-28 14:26:32 -07:00
bp -p "$pat" < "${t/.sh/.in}" 2>"$tmpfile" | diff -y -W60 --color=always "${t/.sh/.out}" - && break
cat "$tmpfile"
2021-09-07 13:39:11 -07:00
printf "\n\033[0;1;31mSorry, try again!\033[m\n"
2021-08-28 14:26:32 -07:00
done
2021-09-07 13:39:11 -07:00
printf "\n\033[0;1;32mCorrect!\033[m\n"
2021-08-28 14:26:32 -07:00
done