5 | 5 |
echo " -h | --help print this help"
|
6 | 6 |
echo " -v | --verbose be verbose (messages go to STDOUT)"
|
7 | 7 |
echo " -V | --version print version information"
|
|
8 |
echo " -D | --debug debug mode"
|
8 | 9 |
echo ""
|
9 | 10 |
echo " Possible return values:"
|
10 | 11 |
echo " 0 most likely running on a laptop"
|
11 | 12 |
echo " 1 most likely NOT running on a laptop"
|
12 | |
echo " 2 called with unknown option, -h, --help, -V or --version"
|
|
13 |
echo " 2 called with unknown option, -h, --help, -V, --version, -D or --debug"
|
13 | 14 |
}
|
14 | 15 |
|
15 | 16 |
PRINTIT="/bin/true" # /bin/true accepts any option but never prints anything
|
|
17 |
EXIT="exit" # replaced in debug mode by /bin/true
|
16 | 18 |
|
17 | 19 |
# Check wether we were asked to be verbose
|
18 | 20 |
|
|
29 | 31 |
usage
|
30 | 32 |
exit 2
|
31 | 33 |
;;
|
|
34 |
"-D"|"--debug")
|
|
35 |
EXIT="/bin/true"
|
|
36 |
set -x
|
|
37 |
;;
|
32 | 38 |
*)
|
33 | 39 |
echo "UNKNOWN OPTION: $1"
|
34 | 40 |
usage
|
|
42 | 48 |
batteries=$(grep Battery /proc/pmu/info | cut -f2 -d:)
|
43 | 49 |
if test "$batteries" -ne 0; then
|
44 | 50 |
$PRINTIT "We're a laptop (Mac: batteries found)" >&2;
|
45 | |
exit 0
|
|
51 |
$EXIT 0
|
46 | 52 |
fi
|
47 | 53 |
exit 1
|
48 | 54 |
fi
|
|
58 | 64 |
|
59 | 65 |
if test "$dmitype" = "Notebook" || test "$dmitype" = "Portable"; then
|
60 | 66 |
$PRINTIT "We're a laptop (dmidecode returned $dmitype)" >&2
|
61 | |
exit 0
|
|
67 |
$EXIT 0
|
62 | 68 |
fi
|
63 | 69 |
|
64 | 70 |
# turn back on for debugging
|
|
70 | 76 |
case "$chassis_type" in
|
71 | 77 |
8) # Portable
|
72 | 78 |
$PRINTIT "We're a portable (chassis_type is $chassis_type)" >&2
|
73 | |
exit 0
|
|
79 |
$EXIT 0
|
74 | 80 |
;;
|
75 | 81 |
9) # Laptop
|
76 | 82 |
$PRINTIT "We're a laptop (chassis_type is $chassis_type)" >&2
|
77 | |
exit 0
|
|
83 |
$EXIT 0
|
78 | 84 |
;;
|
79 | 85 |
10) # Notebook
|
80 | 86 |
$PRINTIT "We're a notebook (chassis_type is $chassis_type)" >&2
|
81 | |
exit 0
|
|
87 |
$EXIT 0
|
82 | 88 |
;;
|
83 | 89 |
11) # Hand Held
|
84 | 90 |
$PRINTIT "We're a hand held (chassis_type is $chassis_type)" >&2
|
85 | |
exit 0
|
|
91 |
$EXIT 0
|
86 | 92 |
;;
|
87 | 93 |
esac
|
88 | 94 |
fi
|
|
100 | 106 |
)
|
101 | 107 |
then
|
102 | 108 |
$PRINTIT "We're a laptop (non device ACPI batteries found)" >&2
|
103 | |
exit 0
|
|
109 |
$EXIT 0
|
104 | 110 |
fi
|
105 | 111 |
done
|
106 | 112 |
fi
|
|
109 | 115 |
results=`find /proc/acpi/battery -mindepth 1 -type d`
|
110 | 116 |
if [ ! -z "$results" ]; then
|
111 | 117 |
$PRINTIT "We're a laptop (ACPI batteries found)" >&2
|
112 | |
exit 0
|
|
118 |
$EXIT 0
|
113 | 119 |
fi
|
114 | 120 |
fi
|
115 | 121 |
|
|
120 | 126 |
battery=`awk '{print $6}' </proc/apm`
|
121 | 127 |
if [ "$battery" != "0xff" ] && [ "$battery" != "0x80" ]; then
|
122 | 128 |
$PRINTIT "We're a laptop (APM batteries found)" >&2
|
123 | |
exit 0
|
|
129 |
$EXIT 0
|
124 | 130 |
fi
|
125 | 131 |
fi
|
126 | 132 |
|
127 | 133 |
$PRINTIT "We're not on a laptop (no relevant hint found)" >&2
|
128 | |
exit 1
|
|
134 |
$EXIT 1
|