File: xbattbar-check-acpi

package info (click to toggle)
xbattbar 1.4.8-1
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 100 kB
  • ctags: 114
  • sloc: ansic: 665; makefile: 77; perl: 16; python: 9
file content (44 lines) | stat: -rwxr-xr-x 1,919 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl
#  *************************************************************************
#  *                                                                       *
#  * Copyright (C) 2009 Dmitry E. Oboukhov <unera@debian.org>              *
#  *                                                                       *
#  * 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 <http://www.gnu.org/licenses/>. *
#  *                                                                       *
#  *************************************************************************

use warnings;
use strict;

my $acpi;

die "Can not start acpi: $!\n" unless open $acpi, '-|', 'acpi', '-b', '-a';

my @acpi = <$acpi>;

my @battery =
    grep { defined ($_) and /^\d+$/ }
    map { s/^.*\s+(\d+)\%.*/$1/s; $_ }
    grep /Battery\s+\d+:/, @acpi;

die "Can not get battery level\n" unless @battery;

my $battery = 0;
$battery += $_ for @battery;
$battery /= scalar(grep { $_ } @battery) || 1;

my $ac = grep /Adapter.*on-line/, @acpi;

printf "battery=%d\nac_line=%s\n", 
    $battery, $ac?"on":"off";