#!/bin/rc rfork en flagfmt='' args='sys ...' if(! ifs=() eval `{aux/getflags $*} || ~ $#* 0){ aux/usage exit usage } fn wti { { echo /boot $2 sleep 2 } | telnet $1 >/dev/null >[2=1] } fn iopower { port=`{ndb/query -f $ndbfile power $2 port} if(~ $#port 0){ echo P: iopower: unknown port >[1=2] exit bad } { echo echo of $port sleep 1 echo on $port } | C $1 >/dev/null } fn apc { { echo apc # user echo apc # password echo olReboot $2 sleep 1 } | telnet $1 >/dev/null >[2=1] } types=(wti iopower apc) fn P{ server=() ndbfile=() for(i in /lib/ndb/powerdb.*){ type=`{ndb/query -f $i power $1 type} if(! ~ $#type 0){ server=` '.' {echo -n $i} server=$server(2) ndbfile=$i break } } if(~ $#server 0){ echo P: unknown power switch for $1 exit unknown } if(! ~ $type $types){ echo P: unknown power switch type $type exit unknown } $type $server $1 } for(i) P $i