diff options
Diffstat (limited to 'nltrigger')
-rwxr-xr-x | nltrigger | 61 |
1 files changed, 43 insertions, 18 deletions
@@ -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 |