shell checks completed and functionality retained
This commit is contained in:
parent
516cd4016c
commit
5273ba6410
23
flash
23
flash
|
|
@ -116,6 +116,7 @@ setup(){\
|
||||||
# Test if .local/share exists and wether to offer setup process
|
# Test if .local/share exists and wether to offer setup process
|
||||||
if [ ! -d "$DIR" ];then
|
if [ ! -d "$DIR" ];then
|
||||||
echo -e "No ${LRED}$DIR${NC} directory, make it? ${LGREEN}Y${NC}/${LRED}N${NC}"
|
echo -e "No ${LRED}$DIR${NC} directory, make it? ${LGREEN}Y${NC}/${LRED}N${NC}"
|
||||||
|
# shellcheck disable=SC2162
|
||||||
read RESPONSE
|
read RESPONSE
|
||||||
case "$RESPONSE" in
|
case "$RESPONSE" in
|
||||||
[QqNn]) exit ;;
|
[QqNn]) exit ;;
|
||||||
|
|
@ -125,11 +126,11 @@ if [ ! -d "$DIR" ];then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# go to the flashcard decks directory
|
# go to the flashcard decks directory
|
||||||
cd "$DIR"
|
cd "$DIR" || exit
|
||||||
|
|
||||||
# If there are no flashcard decks available return user to starting location
|
# If there are no flashcard decks available return user to starting location
|
||||||
# while also displaying explanatory text of issue
|
# while also displaying explanatory text of issue
|
||||||
if [ $(find . -maxdepth "$SEARCH_DEPTH" -iname "*.csv" | wc -l) = 0 ]; then
|
if [ "$(find . -maxdepth "$SEARCH_DEPTH" -iname "*.csv" | wc -l)" = 0 ]; then
|
||||||
echo -e "$NO_DECKS" && cd "$PWD" && exit
|
echo -e "$NO_DECKS" && cd "$PWD" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -144,7 +145,7 @@ if [ ! -e "$REVIEW_LOG" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Show pretty FZF preview of decks using BAT
|
# Show pretty FZF preview of decks using BAT
|
||||||
DECK=$(find . -maxdepth "$SEARCH_DEPTH" -iname "*.csv" | fzf --preview='bat --theme="Solarized (dark)" --style=numbers --color=always {} | head -500')
|
DECK="$(find . -maxdepth "$SEARCH_DEPTH" -iname "*.csv" | fzf --preview='bat --theme="Solarized (dark)" --style=numbers --color=always {} | head -500')"
|
||||||
|
|
||||||
# If no deck is selected in fzf menu
|
# If no deck is selected in fzf menu
|
||||||
# return user to start location
|
# return user to start location
|
||||||
|
|
@ -154,27 +155,31 @@ if [ -z "$DECK" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
main(){
|
main(){
|
||||||
IFS=$':'; read -a q <<<$(sort "$DECK" -n --field-separator=: --key=4 | head -n "$CARD_POOL_SIZE"| shuf -n 1)
|
IFS=$':'
|
||||||
|
# shellcheck disable=SC2162
|
||||||
|
read -a q <<< "$(sort "$DECK" -n --field-separator=: --key=4 | head -n "$CARD_POOL_SIZE"| shuf -n 1)"
|
||||||
clear
|
clear
|
||||||
echo -e "${WHITEBG} Fla.sh - Flash Cards In Your Terminal ${NC}"
|
echo -e "${WHITEBG} Fla.sh - Flash Cards In Your Terminal ${NC}"
|
||||||
echo -e "${ORANGE}${BOLD}Cards Reviewed:${BOLD}${NC}\t$COUNTER"
|
echo -e "${ORANGE}${BOLD}Cards Reviewed:${BOLD}${NC}\t$COUNTER"
|
||||||
echo -e "\t${ORANGE}${BOLD}High Score:${BOLD}${NC}\t$(cat $HIGH_SCORE)"
|
echo -e "\t${ORANGE}${BOLD}High Score:${BOLD}${NC}\t$(cat "$HIGH_SCORE")"
|
||||||
echo -e "\t${ORANGE}${BOLD}Avg review:${BOLD}${NC}\t$(awk '{ sum += $7; n++ } END { if (n > 0) print sum / n; }' $REVIEW_LOG)"
|
echo -e "\t${ORANGE}${BOLD}Avg review:${BOLD}${NC}\t$(awk '{ sum += $7; n++ } END { if (n > 0) print sum / n; }' "$REVIEW_LOG")"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
echo -e "${LGREY}Category:${NC}\n\t\t${q[0]}"
|
echo -e "${LGREY}Category:${NC}\n\t\t${q[0]}"
|
||||||
echo -e "${LGREY}Question:${NC}\n\t\t${q[1]}"
|
echo -e "${LGREY}Question:${NC}\n\t\t${q[1]}"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
echo -e ""
|
echo -e ""
|
||||||
echo -e "${LGREY}Press [Enter] to continue...${NC}"
|
echo -e "${LGREY}Press [Enter] to continue...${NC}"
|
||||||
|
# shellcheck disable=SC2162
|
||||||
read -sn 1 NEXT
|
read -sn 1 NEXT
|
||||||
while [ ! "$NEXT" = "" ] && [ ! "$NEXT" = q ] && [ ! "$NEXT" = Q ]; do
|
while [ ! "$NEXT" = "" ] && [ ! "$NEXT" = q ] && [ ! "$NEXT" = Q ]; do
|
||||||
|
# shellcheck disable=SC2162
|
||||||
read -sn 1 NEXT
|
read -sn 1 NEXT
|
||||||
done
|
done
|
||||||
clear
|
clear
|
||||||
echo -e "${WHITEBG} Fla.sh - Flash Cards In Your Terminal ${NC}"
|
echo -e "${WHITEBG} Fla.sh - Flash Cards In Your Terminal ${NC}"
|
||||||
echo -e "${ORANGE}${BOLD}Cards Reviewed:${BOLD}${NC}\t$COUNTER"
|
echo -e "${ORANGE}${BOLD}Cards Reviewed:${BOLD}${NC}\t$COUNTER"
|
||||||
echo -e "\t${ORANGE}${BOLD}High Score:${BOLD}${NC}\t$(cat $HIGH_SCORE)"
|
echo -e "\t${ORANGE}${BOLD}High Score:${BOLD}${NC}\t$(cat "$HIGH_SCORE")"
|
||||||
echo -e "\t${ORANGE}${BOLD}Avg review:${BOLD}${NC}\t$(awk '{ sum += $7; n++ } END { if (n > 0) print sum / n; }' $REVIEW_LOG)"
|
echo -e "\t${ORANGE}${BOLD}Avg review:${BOLD}${NC}\t$(awk '{ sum += $7; n++ } END { if (n > 0) print sum / n; }' "$REVIEW_LOG")"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
echo -e "${LGREY}Category:${NC}\n\t\t${q[0]}"
|
echo -e "${LGREY}Category:${NC}\n\t\t${q[0]}"
|
||||||
echo -e "${LGREY}Question:${NC}\n\t\t${q[1]}"
|
echo -e "${LGREY}Question:${NC}\n\t\t${q[1]}"
|
||||||
|
|
@ -191,8 +196,10 @@ main(){
|
||||||
echo -e "${LRED}Hard${NC} [1] ${RED}Difficult${NC} [2] ${YELLOW}Normal${NC} [3] ${GREEN}Mild${NC} [4] ${LGREEN}Easy${NC} [5]"
|
echo -e "${LRED}Hard${NC} [1] ${RED}Difficult${NC} [2] ${YELLOW}Normal${NC} [3] ${GREEN}Mild${NC} [4] ${LGREEN}Easy${NC} [5]"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
echo -e "${LGREY}Select a number to continue, or${NC} ${LRED}Q${NC} ${LGREY}to quit...${NC}"
|
echo -e "${LGREY}Select a number to continue, or${NC} ${LRED}Q${NC} ${LGREY}to quit...${NC}"
|
||||||
|
# shellcheck disable=SC2162
|
||||||
read -sn 1 DIFFICULTY_SCORE
|
read -sn 1 DIFFICULTY_SCORE
|
||||||
while [[ ! "$DIFFICULTY_SCORE" =~ [12345qQ] ]]; do
|
while [[ ! "$DIFFICULTY_SCORE" =~ [12345qQ] ]]; do
|
||||||
|
# shellcheck disable=SC2162
|
||||||
read -sn 1 DIFFICULTY_SCORE
|
read -sn 1 DIFFICULTY_SCORE
|
||||||
done
|
done
|
||||||
if [ "$DIFFICULTY_SCORE" = q ] || [ "$DIFFICULTY_SCORE" = Q ]; then
|
if [ "$DIFFICULTY_SCORE" = q ] || [ "$DIFFICULTY_SCORE" = Q ]; then
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue