blob: ff3bf669d2ea9f35467bf54cff47516ab8736bdc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/bin/sh -ef
#
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# mbuto - Minimal Builder Using Terse Options
#
# web/demo.sh: Prepare asciinema(1) demos and upload them to website
#
# Copyright (c) 2022 Red Hat GmbH
# Author: Stefano Brivio <sbrivio@redhat.com>
setup_common() {
export PS1='$ '
tmux new-session -d -s mbuto
tmux set -t mbuto window-status-format '#W'
tmux set -t mbuto window-status-current-format '#W'
tmux set -t mbuto status-left ''
tmux set -t mbuto window-status-separator ''
tmux set -t mbuto window-status-style 'bg=colour1 fg=colour15 bold'
tmux set -t mbuto status-right ''
tmux set -t mbuto status-style 'bg=colour1 fg=colour15 bold'
tmux set -t mbuto status-right-style 'bg=colour1 fg=colour15 bold'
}
SCRIPT_base='
kvm -kernel /boot/vmlinuz-$(uname -r) -initrd $(./mbuto) \
-nodefaults -nographic -append console=ttyS0 -serial stdio
##
echo Hello from the guest!
#
'
SCRIPT_kselftests='
cd ../net-next
ls
#
make -j $(nproc)
################
kvm -kernel arch/x86/boot/bzImage -initrd $(../mbuto/mbuto -p kselftests) \
-m 4096 -cpu host -nodefaults -nographic -append console=ttyS0 -serial stdio
########################################
-
################################################################################
'
setup_base() {
tmux rename-window -t mbuto 'Basic usage'
}
setup_kselftests() {
tmux rename-window -t mbuto 'Running Linux kernel selftests'
}
cmd_write() {
__str="${@}"
while [ -n "${__str}" ]; do
__rem="${__str#?}"
__first="${__str%"$__rem"}"
if [ "${__first}" = ";" ]; then
tmux send-keys -t mbuto -l '\;'
else
tmux send-keys -t mbuto -l "${__first}"
fi
sleep 0.05 || :
__str="${__rem}"
done
sleep 2
tmux send-keys -t mbuto "C-m"
}
script() {
IFS='
'
for line in $(eval printf '%s\\\n' \$SCRIPT_${1}); do
unset IFS
case ${line} in
"#"*) sleep ${#line} ;;
*) cmd_write "${line}" ;;
esac
IFS='
'
done
unset IFS
}
teardown_base() {
:
}
teardown_kselftests() {
:
}
teardown_common() {
sleep 5
tmux kill-session -t mbuto
sleep 5
}
printf '\e[8;22;80t'
for demo in base kselftests; do
setup_common
eval setup_${demo}
asciinema rec --overwrite ${demo}.cast -c 'tmux attach -t mbuto' &
sleep 1
tmux send-keys -t mbuto -l 'reset'
tmux send-keys -t mbuto C-m
sleep 1
tmux refresh-client
script ${demo}
teardown_common
eval teardown_${demo}
gzip -fk9 ${demo}.cast
scp ${demo}.cast ${demo}.cast.gz mbuto.sh:/var/www/mbuto/static/
done
|