forked from glenux/mfm
374 lines
6.7 KiB
Bash
374 lines
6.7 KiB
Bash
|
#!/bin/bash
|
|||
|
# shellcheck disable=SC2317
|
|||
|
|
|||
|
set -u
|
|||
|
|
|||
|
# parameters
|
|||
|
konsole=org.kde.konsole-2913641
|
|||
|
session=2
|
|||
|
SLEEP_LONG_READ="3"
|
|||
|
SLEEP_SHORT_READ="2"
|
|||
|
SLEEP_TRANSITION="0.4"
|
|||
|
SLEEP_COMMAND_BEFORE="0.4"
|
|||
|
SLEEP_COMMAND_AFTER="0.65"
|
|||
|
SLEEP_MICROPAUSE="0.25"
|
|||
|
SLEEP_TYPESPEED="0.10"
|
|||
|
|
|||
|
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 "$SLEEP_TYPESPEED" ; 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
|
|||
|
tmux_key "d"
|
|||
|
qctrlc
|
|||
|
|
|||
|
qrun "clear"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "cd ~/src/mfm"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "cp doc/demo.mfm.yml ~/.config/mfm.yml"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "rm -f output.rec"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "tmux kill-session -t demo"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "mkdir -p /home/vagrant/mnt"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "fusermount -u \"/home/vagrant/mnt/Public - Remote Debian Repository\""
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "rm -fr \"/home/vagrant/mnt/Public - Remote Debian Repository\""
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "# cleanup done"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
## reset demo environment
|
|||
|
qrun "tmux new -s demo"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
tmux_key "c"
|
|||
|
qrun "cd ~/src/mfm"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "mdp --noslidenum doc/SCRIPT.md"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
|
|||
|
tmux_key "c"
|
|||
|
qrun "export PATH=\$PATH:~/src/mfm/bin"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "export FZF_DEFAULT_OPTS=\"--height 40% --layout=reverse --border\""
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "alias cat=\"batcat -p\""
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "cd ~/src/mfm"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun "clear"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
|
|||
|
tmux_key "1"
|
|||
|
tmux_key ":"
|
|||
|
qrun "set -g status off"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
|
|||
|
tmux_key "d"
|
|||
|
|
|||
|
## record
|
|||
|
qrun "asciinema rec --cols 80 --rows 24 -c 'tmux attach' output.rec"
|
|||
|
|
|||
|
# slide 1 (title)
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 2 (config file)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# cmd 2 (show config file)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
|
|||
|
tmux_key "2"
|
|||
|
qtype_slow "cat "
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "~/.config"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "/mfm.yml"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qrun ""
|
|||
|
sleep "$SLEEP_LONG_READ" # double
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
tmux_key "1"
|
|||
|
|
|||
|
# slide 3 (config options 1)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 4 (config options 2)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 5 (preparation - mnt)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# demo 5 (show mnt)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
|
|||
|
tmux_key "2"
|
|||
|
qtype_slow "cd "
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "~/mnt"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
tmux_key "1"
|
|||
|
|
|||
|
# slide 6 (preparation - empty mnt!)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 7 (usage - run)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# demo 7 (run mfm)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
|
|||
|
tmux_key "2"
|
|||
|
qtype_slow "m"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "f"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "m"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_arrow_down
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_arrow_down
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_arrow_up
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
tmux_key "1"
|
|||
|
|
|||
|
# slide 8 (usage - what?)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# demo 8 (usage - what : show mnt)
|
|||
|
tmux_key "2"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_slow "cd \"Pub"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype "lic - Remote Debian Repository\""
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_slow "cd pool"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_slow "cd main"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
tmux_key "1"
|
|||
|
|
|||
|
# slide 9 (usage - explanation)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 10 (usage - prepare for detach)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# demo 10 (run mfm for detach)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
|
|||
|
tmux_key "2"
|
|||
|
|
|||
|
qtype_slow "cd ~/mnt/"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
|
|||
|
qtype_slow "m"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "f"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_slow "m"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_arrow_down
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_arrow_down
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype_arrow_up
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_slow "cd \"Pub"
|
|||
|
sleep "$SLEEP_MICROPAUSE"
|
|||
|
qtype "lic - Remote Debian Repository\""
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_slow "ls"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_SHORT_READ"
|
|||
|
|
|||
|
qtype_slow "ls -la"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
sleep "$SLEEP_COMMAND_BEFORE"
|
|||
|
qtype $'\015'
|
|||
|
sleep "$SLEEP_COMMAND_AFTER"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
tmux_key "1"
|
|||
|
|
|||
|
# slide 11 (usage - detached)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
|
|||
|
# slide 12 (conclusion)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 13 (conclusion)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 14 (conclusion)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# slide 15 (conclusion)
|
|||
|
qtype " "
|
|||
|
sleep "$SLEEP_TRANSITION"
|
|||
|
sleep "$SLEEP_LONG_READ"
|
|||
|
|
|||
|
# detach and clean
|
|||
|
tmux_key "d"
|
|||
|
|
|||
|
qrun "tmux kill-session -t demo"
|
|||
|
qrun "termtosvg render output.rec output.svg"
|
|||
|
|
|||
|
qrun "# success!"
|
|||
|
|
|||
|
exit 0
|
|||
|
|