]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/boot/nusbrc
usb storage device auto mount
[plan9front.git] / sys / src / 9 / boot / nusbrc
1 #!/bin/rc
2
3 if(! bind -a '#u' /dev)
4         exit
5 mkdir -m 0700 '#σc/usb'
6 if(! nusb/usbd)
7         exit
8
9 @{
10         rfork ne
11         fn attach {
12                 switch($4){
13                 case *03
14                         nusb/kb $1
15                 case *08
16                         nusb/disk $1
17                         @{
18                                 rfork ne
19                                 cd '#σ/usb'
20                                 for(dev in sdU^$1.*){
21                                         echo $dev...
22                                         diskparts $dev
23                                         for(part in $dev/dos* $dev/9fat){
24                                                 if(test -r $part) {
25                                                         mkdir -m 0700 '#σc/'^$dev
26                                                         {dossrv -s -f $part &} <[0=1] |
27                                                                 echo 0 >'#σc/'^$dev/dos
28                                                         exit
29                                                 }
30                                         }
31                                 }
32                         } &
33                 }
34         }
35         fn detach {
36                 rm -rf '#σc/usb/'^$1.* '#σc/sdU'^$1.*
37         }
38         rc < '#σ/usb/usbevent' &
39 }
40
41 bind -a '#σ/usb' /dev