URI: 
       tauxstats: replace /proc ACPI calls with /sys ones (#245) - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 7d827b5cca185b411be3ac9b71834958f4737bdf
   DIR parent e995a0c101863688d5f14649ae3de45a7c43789c
  HTML Author: Zach Scott <ethhics@gmail.com>
       Date:   Thu, 19 Sep 2019 17:08:36 +0000
       
       auxstats: replace /proc ACPI calls with /sys ones (#245)
       
       According to <https://askubuntu.com/a/309146>, use of `/proc/acpi` to
       get battery usage is deprecated. This commit replaces the two files from
       tthis API with the single file `/sys/class/power_supply/BAT0/capacity`,
       simultaneously removing the need to calculate battery percentage.
       Diffstat:
         M src/cmd/auxstats/Linux.c            |      30 ++++++++----------------------
       
       1 file changed, 8 insertions(+), 22 deletions(-)
       ---
   DIR diff --git a/src/cmd/auxstats/Linux.c b/src/cmd/auxstats/Linux.c
       t@@ -26,36 +26,22 @@ void (*statfn[])(int) =
        void
        xapm(int first)
        {
       -        static int fd = -1, fdb = -1;
       -        int i, last = -1, curr = -1;
       +        static int fd = -1;
       +        int curr = -1;
        
                if(first){
       -                fd = open("/proc/acpi/battery/BAT0/info", OREAD);
       -                fdb = open("/proc/acpi/battery/BAT0/state", OREAD);
       +                fd = open("/sys/class/power_supply/BAT0/capacity", OREAD);
                        return;
                }
       -        if(fd == -1 || fdb == -1)
       +        if(fd == -1)
                        return;
        
                readfile(fd);
       -        for(i=0; i<nline; i++){
       -                tokens(i);
       -                if(ntok < 3)
       -                        continue;
       -                if(strcmp(tok[0], "last") == 0 && strcmp(tok[1], "full") == 0)
       -                        last = atoi(tok[3]);
       -        }
       -        readfile(fdb);
       -        for(i = 0; i < nline; i++) {
       -                tokens(i);
       -                if(ntok < 3)
       -                        continue;
       -                if(strcmp(tok[0], "remaining") == 0 && strcmp(tok[1], "capacity:") == 0)
       -                        curr = atoi(tok[2]);
       -        }
       +        tokens(0);
       +        curr = atoi(tok[0]);
                                
       -        if(curr != -1 && last != -1)
       -                Bprint(&bout, "battery =%d 100\n", (int)(((float)curr/(float)last)*100.0));
       +        if(curr != -1)
       +                Bprint(&bout, "battery =%d 100\n", curr);
        
        }