obtuse/app/Main.hs

20 lines
765 B
Haskell

batteryCapacityFile = "/sys/class/power_supply/BAT0/capacity" :: FilePath
batteryStatusFile = "/sys/class/power_supply/BAT0/status" :: FilePath
main :: IO ()
main = do
batteryCapacity <- readFile batteryCapacityFile
batteryStatus <- readFile batteryStatusFile
putStrLn $ formatInfo batteryStatus batteryCapacity
formatInfo :: String -> String -> String
formatInfo status capacity = icon ++ " " ++ init capacity ++ "%"
where icon
| init status == "Full" = "🙂"
| init status == "Charging" = "🔋"
| init status == "Not charging" = ""
| init status == "Unknown" = "Unknown"
| read capacity <= 20 = "🪫"
| read capacity <= 100 = "🙃"
| otherwise = "Silly"