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
|
|
|
|
2018-01-26 12:07:54 +00:00
|
|
|
PROMPT="▶"
|
2018-01-26 11:43:06 +00:00
|
|
|
|
|
|
|
enter() {
|
2018-01-26 20:24:49 +00:00
|
|
|
INPUT=$1
|
|
|
|
DELAY=$2
|
|
|
|
|
2018-01-26 12:07:54 +00:00
|
|
|
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"
|
2018-01-26 12:07:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
2018-01-26 12:07:54 +00:00
|
|
|
main() {
|
|
|
|
IFS='%'
|
|
|
|
|
2018-01-26 20:24:49 +00:00
|
|
|
enter "fd" 0
|
2018-01-26 12:07:54 +00:00
|
|
|
|
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
|
2018-01-26 12:07:54 +00:00
|
|
|
|
|
|
|
prompt
|
|
|
|
|
|
|
|
sleep 3
|
|
|
|
|
2018-01-27 10:25:19 +00:00
|
|
|
echo ""
|
|
|
|
|
2018-01-26 12:07:54 +00:00
|
|
|
unset IFS
|
|
|
|
}
|
2018-01-20 19:47:29 +00:00
|
|
|
|
2018-01-26 12:07:54 +00:00
|
|
|
main
|