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