diff --git a/bin/qcode.bash b/bin/qcode.bash index b7b1a4f..07095dc 100755 --- a/bin/qcode.bash +++ b/bin/qcode.bash @@ -1,6 +1,47 @@ #!/usr/bin/env bash -jq "keys[]" q-codes.json \ - | sort -R \ - | head -n 1 \ - | xargs -I "%" jq '"%" as $qcode | [.[$qcode],$qcode][]' q-codes.json \ - | more -4 + +UPCURSOR_CLEAR_ANSI="\033[1A\033[K" + +select_random_drill() { + local drill + drill=$(jq 'keys[]' q-codes.json \ + | sort -R \ + | head -n 1 \ + | xargs -I "%" jq "\ + \"%\" as \$qcode \ + | .[\$qcode] as \$qobj \ + | {qcode: \$qcode, question: \$qobj.question, answer: \$qobj.answer}" \ + q-codes.json + ) + echo "$drill" +} + +run_drill() { + echo -e "What is the question called by $(echo "$1" | jq --color-output "\"\(.qcode)?\"")?" + read -r -p "Press Enter to Reveal Answer" + echo -e "$(echo "$UPCURSOR_CLEAR_ANSI")It is: $(echo "$1" | jq --color-output '.question')" + + echo "" + + echo -e "What is the answer called by $(echo "$1" | jq --color-output ".qcode")?" + read -r -p "Press Enter to Reveal Answer" + echo -e "$(echo "$UPCURSOR_CLEAR_ANSI")It is: $(echo "$1" | jq --color-output '.answer')" + + echo "" +} + +main() { + local random_drill + random_drill="$(select_random_drill)" + run_drill "$random_drill" +} + +figlet -f nancyj-fancy "Q-CoDe Training" -c -t -os + +echo "" +echo -e "To exit drills, use \e[33mctrl-c\e[0m." +echo "" + +while true; do + main +done;