I'm using this script to spawn acme on OpenBSD in all its glory!
#!/usr/bin/env rc . $home/lib/profile if (~ $PLAN9 '') { echo '$PLAN9 is not defined!' exit 1 }
Provide a sane environment for acme
SHELL=rc PAGER=nobs MANPAGER=nobs EDITOR=editinacme VISUAL=editinacme
Most of the utilities from plan9ports binds sockets in NAMESPACE, which is /tmp/ns.$USER.$DISPLAY by default. I'd like to have different namespaces per acme session, so I'm defining the env variable.
Yes, using $pid ($$ in bourne shell) is discouraged to generate "random" values, but here it's done on purpose: every program spawned inside *this* terminal will share the same namespace.
NAMESPACE=/tmp/ns.$user.$pid mkdir -p $"NAMESPACE
Start the plumber and fontsrv
plumber fontsrv & fontsrvpid=$apid
I've used Go Mono for a while, but I'm falling in love with bitmaps fonts these days
font=/usr/local/plan9/font/fixed/unicode.7x14.font # font=/mnt/font/GoMono/10a/font FONT=/mnt/font/InputSans-Regular/10a/font
Start acme for real
$PLAN9/bin/acme -a -f $font -F $FONT $* & acmepid=$apid
wait a bit for acme to set up its things and start autoacme
{ sleep 1 winid=1 exec acmeeval 'autoacme '$home'/bin/acmeconfig' } & acmeevalpid=$apid
Then wait for acme to terminate
wait $acmepid
and stop acmeeval (just in case) and fontsrv
kill $acmeevalpid kill $fontsrvpid
wait a little bit more
wait # just in case
and then kill the namespace before quitting
rm -rf $"NAMESPACE