subfn broken {
for i in ${split $nl "{ps}} {
(pid gid uid time state nil) := ${split ' ' $i}
if {~ $state broken} {
result=$pid $result
}
}
}
cmds = (
show {result = 'cat tst.b'}
compile {result = 'limbo -g tst.b'}
show {result = 'ls -l tst.*'}
run {result = 'tst'}
ps {result = 'ps'}
stack {
pid = ${broken}
if {! ~ $#pid 1} {
result = '# wrong number of broken processes'
pid=''
} {
result = 'stack ' ^ $pid
}
}
debug {result = 'wm/deb -p ' ^ $pid}
exit {result=''}
)
dodemo $cmds
# could use a generator
# function that returns a function to evaluate
# the next step in the demo.
# e.g.
#
#cmd = ${vbind {
# (label rcmd cmds) := $cmds
# cmd = ${vbind $0 cmds}
# buttons=($label $rcmd)
#} cmds}
|