examples/lesson.sh
1 #!/bin/sh 2 3 # proof-of-concept for what a basic typing lesson might look like. 4 # Usage: ./lesson.sh OLD_LETTERS NEW_LETTERS 5 6 set -e 7 8 OLD_LETTERS=$1 9 NEW_LETTERS=$2 10 11 cat dvorak 12 13 old_letters() { 14 echo "$OLD_LETTERS" | fold -b -w 1 | shuf -n $1 | tr -d '\n' 15 } 16 17 OLD_LETTER_COUNT="$(echo "$OLD_LETTERS" | wc -c)" 18 EASY=$(($OLD_LETTER_COUNT / 4)) 19 MEDIUM=$((2 * $OLD_LETTER_COUNT / 4)) 20 HARD=$((3 * $OLD_LETTER_COUNT / 4)) 21 22 echo "You already know: [$OLD_LETTERS] and will learn [$NEW_LETTERS]." 23 echo "If it gets too hard, don't be afraid to ctrl+C and redo previous lessons." 24 echo "" 25 26 echo "Introducing the new letters..." 27 typie -lo /dev/null "$(./words-by-letter.sh "$NEW_LETTERS" 6 12)" 28 typie -lo /dev/null "$(./words-by-letter.sh "$NEW_LETTERS" 6 12)" 29 30 echo "Integrating with some old letters..." 31 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $EASY)$NEW_LETTERS" 5 8)" 32 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $EASY)$NEW_LETTERS" 5 8)" 33 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $EASY)$NEW_LETTERS" 5 8)" 34 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $MEDIUM)$NEW_LETTERS" 5 8)" 35 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $MEDIUM)$NEW_LETTERS" 5 8)" 36 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $HARD)$NEW_LETTERS" 5 8)" 37 typie -o /dev/null "$(./words-by-letter.sh "$(old_letters $HARD)$NEW_LETTERS" 5 8)" 38 39 echo "All together now!" 40 typie -o /dev/null "$(./words-by-letter.sh "$OLD_LETTERS$NEW_LETTERS" 5 8)" 41 typie -o /dev/null "$(./words-by-letter.sh "$OLD_LETTERS$NEW_LETTERS" 5 8)" 42 typie -o /dev/null "$(./words-by-letter.sh "$OLD_LETTERS$NEW_LETTERS" 5 8)" 43 44 echo "All done! :3"