# /dis/sh script
# wm defines "menu" and "delmenu" builtins
load std
prompt='% ' ''
fn % {$*}
home=/usr/^"{cat /dev/user}
bind -b '#^' /chan
winsrv
if {! {~ wm ${loaded}}} {
echo wmsetup must run under wm >[1=2]
raise usage
}
fn wmrun {
args := $*
{
pctl newpgrp
fn wmrun
$args
} > /chan/wmstdout >[2] /chan/wmstderr &
}
fn cd {
builtin cd $*;
rescue 'bad redir' {} {
echo cwd `{pwd} > /chan/shctl
} >[2] /dev/null
}
plumber >/chan/wmstdout >[2=1]
menu Shell {wmrun wm/sh}
menu Snarftmp {cp /chan/snarf /tmp/snarf.txt}
menu Acme {wmrun acme}
menu Charon {wmrun charon}
menu Manual {wmrun wm/man}
menu Files {if {ftest -d $home} {wmrun wm/ftree $home} {wmrun wm/ftree /}}
menu '' ''
menu Grid 'Node monitor' {wmrun nodemonitor}
menu Grid 'Job monitor' {wmrun jobmonitor}
menu System 'Debugger' {wmrun wm/deb}
menu System 'Task manager' {wmrun wm/task}
menu System 'Memory monitor' {wmrun wm/memory}
menu System 'About' {wmrun wm/about}
menu Games 'Tetris' {wmrun wm/tetris}
menu Games 'Bounce' {wmrun wm/bounce}
# anything else
if {ftest -f $home/lib/wmsetup} {run $home/lib/wmsetup} {}
|