mfm/doc/record-output.sh

302 lines
3.8 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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