blob: 5d3b31aa702ec4f36aa182f96aec286c6d7fc7ae (
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
#!/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() {
tmux new-session -d -s mbuto
tmux send-keys -t mbuto 'PS1="$ "'
tmux send-keys -t mbuto C-m
tmux send-keys -t mbuto clear
tmux send-keys -t mbuto C-m
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 -p kselftests -C timens) \
-m 4096 -cpu host -nodefaults -nographic -append console=ttyS0 -serial stdio
####################
@
#####
reset
##
mbuto -f test.img -p kselftests -T timers:rtcpie
#################
kvm -kernel arch/x86/boot/bzImage -initrd test.img \
-m 4096 -cpu host -nodefaults -nographic -append console=ttyS0 -serial stdio
#####
@
#######################
reset
##
kvm -kernel arch/x86/boot/bzImage -initrd $(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
"@") tmux send-keys -t mbuto C-m ;;
"#"*) 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
done
|