0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 desc=""
0017 module=""
0018 args=""
0019
0020 modprobe="/sbin/modprobe"
0021
0022 main() {
0023 parse_args "$@"
0024 assert_root
0025 assert_have_module
0026 run_module
0027 }
0028
0029 parse_args() {
0030 script=${0
0031
0032 if [ $
0033 echo "Usage: $script <description> <module_name> [FAIL]"
0034 exit 1
0035 fi
0036
0037 desc="$1"
0038 shift || true
0039 module="$1"
0040 shift || true
0041 args="$@"
0042 }
0043
0044 assert_root() {
0045 if [ ! -w /dev ]; then
0046 skip "please run as root"
0047 fi
0048 }
0049
0050 assert_have_module() {
0051 if ! $modprobe -q -n $module; then
0052 skip "module $module is not found"
0053 fi
0054 }
0055
0056 run_module() {
0057 if $modprobe -q $module $args; then
0058 $modprobe -q -r $module
0059 say "ok"
0060 else
0061 fail ""
0062 fi
0063 }
0064
0065 say() {
0066 echo "$desc: $1"
0067 }
0068
0069
0070 fail() {
0071 say "$1 [FAIL]" >&2
0072 exit 1
0073 }
0074
0075 skip() {
0076 say "$1 [SKIP]" >&2
0077
0078 exit 4
0079 }
0080
0081
0082
0083
0084 main "$@"