xref: /plan9-contrib/rc/bin/usbeject (revision 671dfc474d1a5bcbeda8be1356d2abfa05b91489)
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