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