You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tlp/tlp-stat-fix.patch

65 lines
2.6 KiB

8 years ago
diff --git a/tlp-stat.in b/tlp-stat.in
--- a/tlp-stat.in
+++ b/tlp-stat.in
@@ -58,6 +58,15 @@ no_runtimepm=0
# --- Functions
+catparm () { # echo contents of sysfile or default if non-existent or unreadable
+ # $1: sysfile, $2: default value
+ local val="$(cat $1 2> /dev/null)"
+ [ -n "$val" ] || val="$2" # sysfile nonexistent or read failed
+
+ printf "%s" $val
+ return 0
+}
+
printparm () { # formatted output of sysfile - general
# $1: format, $2: sysfile, $3: namsg, $4: cutoff
local format="$1"
@@ -1115,9 +1124,9 @@ if [ "$show_bat" = "1" ] || [ "$show_all" = "1" ]; then
echo
# store values for charge / capacity calculation below
- ed=$(cat $batd/design_capacity)
- ef=$(cat $batd/last_full_capacity)
- en=$(cat $batd/remaining_capacity)
+ ed=$(catparm $batd/design_capacity 0)
+ ef=$(catparm $batd/last_full_capacity 0)
+ en=$(catparm $batd/remaining_capacity 0)
# show charge + capacity
lcnt=0
@@ -1184,9 +1193,9 @@ if [ "$show_bat" = "1" ] || [ "$show_all" = "1" ]; then
printparm "%-59s = ##%6d## [mW]" $batd/power_now "" 000
# store values for charge / capacity calculation below
- ed=$(cat $batd/energy_full_design)
- ef=$(cat $batd/energy_full)
- en=$(cat $batd/energy_now)
+ ed=$(catparm $batd/energy_full_design 0)
+ ef=$(catparm $batd/energy_full 0)
+ en=$(catparm $batd/energy_now 0)
elif [ -f $batd/charge_full ]; then
printparm "%-59s = ##%6d## [mAh]" $batd/charge_full_design "" 000
@@ -1195,9 +1204,15 @@ if [ "$show_bat" = "1" ] || [ "$show_all" = "1" ]; then
printparm "%-59s = ##%6d## [mA]" $batd/current_now "" 000
# store values for charge / capacity calculation below
- ed=$(cat $batd/charge_full_design)
- ef=$(cat $batd/charge_full)
- en=$(cat $batd/charge_now)
+ ed=$(catparm $batd/charge_full_design 0)
+ ef=$(catparm $batd/charge_full 0)
+ en=$(catparm $batd/charge_now 0)
+
+ else
+ ed=0
+ ef=0
+ en=0
+
fi
if [ $tpbat -eq 1 ]; then
print_tp_batstate $batd/status