aboutsummaryrefslogtreecommitdiffstats
path: root/nltrigger
diff options
context:
space:
mode:
Diffstat (limited to 'nltrigger')
-rwxr-xr-xnltrigger61
1 files changed, 43 insertions, 18 deletions
diff --git a/nltrigger b/nltrigger
index bc80488..fdd78d4 100755
--- a/nltrigger
+++ b/nltrigger
@@ -1,41 +1,69 @@
#!/bin/busybox ash
-if [ $# -eq 0 ];
-then
- printf "usage: %s subsystem [action]\n" "$(basename $0)" >&2
+usage() {
+ printf "usage: %s [add|list|del|action] [subsystem]\n" "$(basename $1)" >&2
exit 1
+}
+
+action="list"
+if [ $# -gt 0 ];
+then
+ action="$1"
fi
-action="add"
-if [ $# -eq 2 ];
+if [ "$action" = "list" ];
then
- action="$2"
+ printf "class:\n"
+ for i in /sys/class/*;
+ do
+ printf "\t%s\n" $(basename $i)
+ done
+
+ printf "bus:\n"
+ for i in /sys/bus/*;
+ do
+ printf "\t%s\n" $(basename $i)
+ done
+
+ printf "devices:\n"
+ for i in /sys/devices/*;
+ do
+ printf "\t%s\n" $(basename $i)
+ done
+
+ exit 0
fi
-if [ "$1" != "all" ];
+if [ $# -lt 2 ];
then
- if [ -d /sys/class/$1 ];
+ usage "$0"
+fi
+subsystem="$2"
+
+if [ "$subsystem" != "all" ];
+then
+ if [ -d /sys/class/$subsystem ];
then
- for i in /sys/class/$1/*/uevent;
+ for i in /sys/class/$subsystem/*/uevent;
do
echo $action > $i
done
exit 0
fi
- if [ -d /sys/bus/$1 ];
+ if [ -d /sys/bus/$subsystem ];
then
- for i in /sys/bus/$1/devices/*/uevent;
+ for i in /sys/bus/$subsystem/devices/*/uevent;
do
echo $action > $i
done
exit 0
fi
- if [ -d /sys/devices/$1 ];
+ if [ -d /sys/devices/$subsystem ];
then
- for i in /sys/devices/$1/*/uevent \
- /sys/devices/$1/*/*/uevent;
+ for i in /sys/devices/$subsystem/*/uevent \
+ /sys/devices/$subsystem/*/*/uevent;
do
echo $action > $i
done
@@ -46,10 +74,7 @@ then
exit 1
fi
-exit 0
-
-for i in /sys/class/*/*/uevent /sys/bus/*/devices/*/uevent \
- /sys/devices/*/*/uevent /sys/devices/*/*/*/uevent;
+for i in /sys/class/*/*/uevent;
do
echo $action > $i
done