1#!/bin/rc 2# usbeject - unmount usb disks given as arguments 3# unmount all of them if no arguments given 4rfork e 5disk = () 6mtpt = /n/usb 7 8test -e /dev/fs/ctl || bind -b '#k' /dev >[2]/dev/null 9 10test -e /dev/usb || bind -a '#u' /dev || { 11 echo $0: no '#u/usb' >[1=2] 12 exit nousb 13} 14test -e /dev/usbdctl || mount -a /srv/usb /dev || { 15 echo $0: cannot mount /srv/usb >[1=2] 16 exit nousbd 17} 18 19disks=() 20mtpt=() 21switch ($#*) { 22case 0 23 disks=`{ls -pd /n/sdU*} 24case * 25 disks=() 26 for (a) { 27 if(~ $a sd??) 28 disk=`{ls -pd /n/^$*^*} 29 if not 30 disk=$a 31 disks=($disks $disk) 32 } 33} 34if (~ $disks '''sdU*''') 35 exit '' 36for (disk in $disks) { 37 unmount /n/$disk >[2]/dev/null && echo $disk unmounted 38 if (test -e /dev/fs/ctl) 39 echo del $disk^parts/^'*' >/dev/fs/ctl >[2]/dev/null 40} 41exit '' 42