sddev - nldev - NetLink DEVice manager; a lightweight netlink frontend for mdev.
(HTM) git clone git://r-36.net/nldev
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
sddev (1762B)
---
1 #!/bin/busybox ash
2
3 # $MDEV
4 # $ACTION
5
6 blkidstr=$(blkid $(pwd)/${MDEV})
7 UUID=$(echo -n "$blkidstr" \
8 | grep UUID \
9 | sed -e 's,.*UUID="\([^"]*\)".*,\1,')
10 LABEL=$(echo -n "$blkidstr" \
11 | grep LABEL \
12 | sed -e 's,.*LABEL="\([^"]*\)".*,\1,')
13
14 BLOCK=""
15 [ -e /sys${DEVPATH}/dev ] && BLOCK=$(cat /sys${DEVPATH}/dev)
16
17 case "$ACTION" in
18 add|"")
19 if [ -n "${UUID}" ];
20 then
21 mkdir -p disk/by-uuid
22 cd disk/by-uuid
23 [ -e "${UUID}" ] && rm -f ${UUID}
24 ln -s ../../${MDEV} ${UUID}
25 cd ../..
26 fi
27
28 if [ -n "${LABEL}" ];
29 then
30 mkdir -p disk/by-label
31 cd disk/by-uuid
32 [ -e "${LABEL}" ] && rm -f ${LABEL}
33 ln -s ../../${MDEV} ${LABEL}
34 cd ../..
35 fi
36
37 if [ -n "${BLOCK}" ];
38 then
39 mkdir -p block
40 cd block
41 [ -e "${BLOCK}" ] && rm -f ${BLOCK}
42 ln -s ../${MDEV} ${BLOCK}
43 cd ..
44 fi
45 ;;
46 remove)
47 [ -n "${UUID}" ] && [ -e disk/by-uuid/${UUID} ] \
48 && rm -f disk/by-uuid/${UUID}
49 [ -n "${LABEL}" ] && [ -e disk/by-uuid/${LABEL} ] \
50 && rm -f disk/by-uuid/${LABEL}
51 [ -n "${BLOCK}" ] && [ -e block/${BLOCK} ] \
52 && rm -f block/${BLOCK}
53
54 if [ -e disk/by-uuid ];
55 then
56 cd disk/by-uuid
57 SLS=$(ls -l \
58 | awk "/..\/..\/${MDEV}/ {print \$9 }")
59 for FILE in ${SLS};
60 do
61 rm -f ${FILE}
62 done
63 cd ../..
64
65 rmdir disk/by-uuid 2>/dev/null
66 fi
67 if [ -e disk/by-label ];
68 then
69 cd disk/by-label
70 SLS=$(ls -l \
71 | awk "/..\/..\/${MDEV}/ {print \$9 }")
72 for FILE in ${SLS};
73 do
74 rm -f ${FILE}
75 done
76 cd ../..
77
78 rmdir disk/by-label 2>/dev/null
79 fi
80 rmdir disk/ 2>/dev/null
81
82 if [ -e block ];
83 then
84 cd block
85 SLS=$(ls -l \
86 | awk "/..\/${MDEV}/ {print \$9 }")
87 for FILE in ${SLS};
88 do
89 rm -f ${FILE}
90 done
91 cd ..
92
93 rmdir block 2>/dev/null
94 fi
95 ;;
96 esac
97
98 exit 0
99