fd/screencast.sh

56 lines
661 B
Bash
Raw Normal View History

2018-01-20 19:47:29 +00:00
#!/bin/sh
2018-01-26 12:14:38 +00:00
# Designed to be executed via svg-term:
2018-01-26 20:24:49 +00:00
# svg-term --command="sh screencast.sh" --out screencast.svg --padding=10
2018-01-20 19:47:29 +00:00
set -e
2018-01-26 20:24:49 +00:00
set -u
2018-01-20 19:47:29 +00:00
PROMPT="▶"
2018-01-26 11:43:06 +00:00
enter() {
2018-01-26 20:24:49 +00:00
INPUT=$1
DELAY=$2
prompt
2018-01-26 20:24:49 +00:00
sleep $DELAY
type $INPUT
2018-01-26 11:43:06 +00:00
sleep 0.5
2018-01-27 10:25:19 +00:00
printf '%b' "\n"
2018-01-26 20:24:49 +00:00
eval $INPUT
2018-01-26 11:43:06 +00:00
type "\n"
}
prompt() {
2018-01-27 10:25:19 +00:00
printf '%b ' $PROMPT | pv -q
2018-01-26 11:43:06 +00:00
}
type() {
printf '%b' $1 | pv -qL $[10+(-2 + RANDOM%5)]
2018-01-20 19:47:29 +00:00
}
main() {
IFS='%'
2018-01-26 20:24:49 +00:00
enter "fd" 0
2018-01-26 20:24:49 +00:00
enter "fd -e md" 1
2018-01-20 19:47:29 +00:00
2018-01-26 20:24:49 +00:00
enter "fd -e md --exec wc -l" 1
2018-01-26 11:50:49 +00:00
2018-01-26 20:24:49 +00:00
enter "fd mod" 1
2018-01-26 11:50:49 +00:00
2018-01-26 20:24:49 +00:00
enter "fd sh" 1
2018-01-20 19:47:29 +00:00
2018-01-26 20:24:49 +00:00
enter "fd -H sample" 1
2018-01-20 19:47:29 +00:00
2018-01-26 20:24:49 +00:00
enter "fd -h" 1
prompt
sleep 3
2018-01-27 10:25:19 +00:00
echo ""
unset IFS
}
2018-01-20 19:47:29 +00:00
main