Add battery info

This commit is contained in:
2026-02-27 22:39:10 -07:00
parent 7d4749216f
commit 993a924bfd
3 changed files with 67 additions and 3 deletions

View File

@@ -1 +1,62 @@
package collectors
import (
"bufio"
"log"
"os"
"strconv"
)
func batteryCapacity() (capacity int) {
const filename string = "/sys/class/power_supply/BAT0/capacity"
var rawCapacity string
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
if scanner.Scan() {
rawCapacity = scanner.Text()
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
capacity, err = strconv.Atoi(rawCapacity)
if err != nil {
log.Fatal(err)
}
return capacity
}
func batteryStatus() (status string) {
const filename string = "/sys/class/power_supply/BAT0/status"
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
if scanner.Scan() {
status = scanner.Text()
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
return status
}
func batteryInfo() (capacity int, status string) {
const statusFile string = "/sys/class/power_supply/BAT0/status"
capacity = batteryCapacity()
status = batteryStatus()
return capacity, status
}