feat: let's make it pwetty, let's spin on it, and let's refactor it

Signed-off-by: Christina Sørensen <ces@fem.gg>
This commit is contained in:
Christina Sørensen 2025-01-27 14:32:18 +01:00
parent 63c6591334
commit ba951db84a
Signed by: cafkafk
GPG key ID: F67767BE4545A600

View file

@ -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;