X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;ds=sidebyside;f=bin%2Fbattery.pl;h=d5aced9064668c417d6cce92ff379a7ecc9a2747;hb=8ae7e0df86ae17702c1f83197d185f58878bb1fa;hp=ed57666deaaace5b80dc4dd1dfc870b2c7a3fd76;hpb=d8a2fddef87e3fc24c774b8c0ef5e2dc460a4f42;p=config%2Fdotfiles.git
diff --git a/bin/battery.pl b/bin/battery.pl
index ed57666..d5aced9 100755
--- a/bin/battery.pl
+++ b/bin/battery.pl
@@ -1,19 +1,45 @@
#!/usr/bin/perl
+# Copyright (C) 2011-2013 Simon Ruderich
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
use strict;
use warnings;
-my $path = '/sys/class/power_supply/BAT0/uevent';
+if (scalar @ARGV != 1 and (scalar @ARGV != 2 or not $ARGV[0] =~ /-[st]/)) {
+ print STDERR "Usage: $0 [-s | -t] \n";
+ print STDERR "\n";
+ print STDERR "Normally this is /sys/class/power_supply/BAT*.\n";
+ exit 1;
+}
+if (scalar @ARGV == 1) {
+ @ARGV = ('', $ARGV[0]);
+}
+
+my $path = "$ARGV[1]/uevent";
# No battery available.
-if (! -e $path) {
+if (not -e $path) {
+ print STDERR "'$path' not found.\n";
exit 1;
}
-my $screen_mode = (defined $ARGV[0] and $ARGV[0] eq '-s');
-my $tmux_mode = (defined $ARGV[0] and $ARGV[0] eq '-t');
+my $screen_mode = ($ARGV[0] eq '-s');
+my $tmux_mode = ($ARGV[0] eq '-t');
my %battery;
@@ -22,7 +48,13 @@ while (<$file>) {
/^POWER_SUPPLY_([A-Z_]+)=(.+)$/;
$battery{$1} = $2;
}
-close $file;
+close $file or die $!;
+
+# New names ...
+if (defined $battery{ENERGY_NOW}) {
+ $battery{CHARGE_NOW} = $battery{ENERGY_NOW};
+ $battery{CHARGE_FULL} = $battery{ENERGY_FULL};
+}
my $charge = int($battery{CHARGE_NOW} / $battery{CHARGE_FULL} * 100);