X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=bin%2Fbattery.pl;h=d5aced9064668c417d6cce92ff379a7ecc9a2747;hb=8f24a1138ad378038239e8d0cb9619864f7ca026;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);