mfm/doc/record-output.sh

303 lines
3.8 KiB
Bash
Raw Normal View History

2023-10-25 00:21:04 +02:00
#!/bin/bash
# shellcheck disable=SC2317
# parameters
konsole=org.kde.konsole-2913641
session=2
qtype() {
qdbus "$konsole" "/Sessions/$session" sendText "$1"
}
qrun() {
qdbus "$konsole" "/Sessions/$session" runCommand "$1"
}
qctrlb() {
qdbus "$konsole" "/Sessions/$session" sendText $'\002'
}
qctrlc() {
qdbus "$konsole" "/Sessions/$session" sendText $'\003'
}
qtype_slow() {
echo -n "$1" \
| sed 's/\(.\)/\1\n/g' \
| while IFS="" read -r X ; do qtype "$X" ; sleep 0.10 ; done
}
tmux_key() {
qctrlb
sleep 0.5
qtype "$1"
}
qtype_arrow_up() {
qtype $'\033'
qtype "[A"
}
qtype_arrow_down() {
qtype $'\033'
qtype "[B"
}
qtype_arrow_left() {
qtype $'\033'
qtype "[D"
}
qtype_arrow_right() {
qtype $'\033'
qtype "[C"
}
## cleanup
qctrlc
qrun "clear"
qrun "cd ~/src/mfm"
qrun "rm -f output.rec"
qrun "tmux kill-session -t demo"
qrun "sudo umount \"/home/vagrant/mnt/Public - Remote Debian Repository\""
qrun "rm -fr \"/home/vagrant/mnt/Public - Remote Debian Repository\""
qrun "# cleanup done"
sleep 5
## reset demo environment
qrun "tmux new -s demo"
tmux_key "c"
qrun "cd ~/src/mfm"
qrun "mdp doc/SCRIPT.md"
tmux_key "c"
qrun "export PATH=\$PATH:~/src/mfm/bin"
qrun "cd ~/src/mfm"
tmux_key "1"
tmux_key ":"
qrun "set -g status off"
tmux_key "d"
## record
qrun "asciinema rec --cols 80 --rows 24 -c 'tmux attach' output.rec"
# slide 1 (title)
sleep 4
# slide 2 (config file)
qtype " "
sleep 4
# cmd 2 (show config file)
tmux_key "2"
qtype_slow "cat "
sleep 0.25
qtype_slow "~/.config"
sleep 0.25
qtype_slow "/mfm.yml"
sleep 0.25
qrun ""
sleep 4
tmux_key "1"
# slide 3 (config options 1)
qtype " "
sleep 4
# slide 4 (config options 2)
qtype " "
sleep 4
# slide 5 (preparation - mnt)
qtype " "
sleep 4
# demo 5 (show mnt)
tmux_key "2"
qtype_slow "cd "
sleep 0.25
qtype_slow "~/mnt"
sleep 0.25
qrun ""
sleep 0.5
qtype_slow "ls"
sleep 0.25
qrun ""
sleep 4
tmux_key "1"
# slide 6 (preparation - empty mnt!)
qtype " "
sleep 4
# slide 7 (usage - run)
qtype " "
sleep 4
# demo 7 (run mfm)
tmux_key "2"
qtype_slow "m"
sleep 0.25
qtype_slow "f"
sleep 0.25
qtype_slow "m"
sleep 1
qtype $'\015'
sleep 4
qtype_arrow_up
sleep 0.25
qtype_arrow_up
sleep 0.25
qtype_arrow_up
sleep 0.5
qtype_arrow_down
sleep 1
qtype $'\015'
sleep 4
tmux_key "1"
# slide 8 (usage - what?)
qtype " "
sleep 4
# demo 8 (usage - what : show mnt)
tmux_key "2"
qtype_slow "ls"
sleep 0.25
qtype $'\015'
sleep 2
qtype_slow "cd \"Pub"
sleep 0.25
qtype "lic - Remote Debian Repository\""
sleep 0.25
qtype $'\015'
sleep 0.5
qtype_slow "ls"
sleep 0.25
qtype $'\015'
sleep 2
qtype_slow "cd pool"
sleep 0.25
qtype $'\015'
sleep 0.5
qtype_slow "ls"
sleep 0.25
qtype $'\015'
sleep 2
qtype_slow "cd main"
sleep 0.25
qtype $'\015'
sleep 0.5
qtype_slow "ls"
sleep 0.25
qtype $'\015'
sleep 4
tmux_key "1"
# slide 9 (usage - explanation)
qtype " "
sleep 4
# slide 10 (usage - prepare for detach)
qtype " "
sleep 4
# demo 10 (run mfm for detach)
tmux_key "2"
qtype_slow "cd ~/mnt/"
sleep 0.25
qtype $'\015'
sleep 2
qtype_slow "m"
sleep 0.25
qtype_slow "f"
sleep 0.25
qtype_slow "m"
sleep 1
qtype $'\015'
sleep 4
qtype_arrow_up
sleep 0.25
qtype_arrow_up
sleep 0.25
qtype_arrow_up
sleep 0.5
qtype_arrow_down
sleep 1
qtype $'\015'
sleep 4
qtype_slow "ls"
sleep 1
qtype $'\015'
sleep 2
qtype_slow "cd \"Pub"
sleep 0.25
qtype "lic - Remote Debian Repository\""
sleep 1
qtype $'\015'
sleep 2
qtype_slow "ls"
sleep 1
qtype $'\015'
sleep 2
qtype_slow "ls -la"
sleep 1
qtype $'\015'
sleep 4
tmux_key "1"
# slide 11 (usage - detached)
qtype " "
sleep 4
# slide 12 (conclusion)
qtype " "
sleep 4
# slide 13 (conclusion)
qtype " "
sleep 4
# slide 14 (conclusion)
qtype " "
sleep 4
# slide 15 (conclusion)
qtype " "
sleep 4
# detach and clean
tmux_key "d"
qrun "tmux kill-session -t demo"
qrun "termtosvg render output.rec output.svg"
qrun "# success!"
exit 0