summaryrefslogtreecommitdiff
path: root/packages/code/dfetch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/code/dfetch')
-rw-r--r--packages/code/dfetch/app/Dfetch/Battery.hs20
-rw-r--r--packages/code/dfetch/app/Main.hs6
2 files changed, 23 insertions, 3 deletions
diff --git a/packages/code/dfetch/app/Dfetch/Battery.hs b/packages/code/dfetch/app/Dfetch/Battery.hs
index 0315882..703e3df 100644
--- a/packages/code/dfetch/app/Dfetch/Battery.hs
+++ b/packages/code/dfetch/app/Dfetch/Battery.hs
@@ -1,9 +1,11 @@
module Dfetch.Battery
( Battery(..)
, allBatteries
+ , renderBat
) where
import Data.List (isPrefixOf)
+import GHC.Float (double2Int)
import System.Directory (listDirectory)
import System.FilePath ((</>))
@@ -32,3 +34,21 @@ findBatteries = filter ("BAT" `isPrefixOf`) <$> listDirectory basePath
-- | Fetch all batteries from the running system
allBatteries :: IO [Battery]
allBatteries = findBatteries >>= mapM getCapacity
+
+renderBat :: [Battery] -> String
+renderBat bs = unlines $
+ [ "Battery" , "======="] <> map render bs
+ where
+ totalEnergy = sum . map (energyFull) $ bs
+ calcEnergy =
+ show . double2Int . (* 100) . (/ totalEnergy) . energyFull
+
+ render b = mconcat $
+ [ "\t"
+ , name b
+ , ": "
+ , show (capacity b)
+ , "%,\t"
+ , calcEnergy b
+ , "% of total energy"
+ ]
diff --git a/packages/code/dfetch/app/Main.hs b/packages/code/dfetch/app/Main.hs
index e04ff42..83c2596 100644
--- a/packages/code/dfetch/app/Main.hs
+++ b/packages/code/dfetch/app/Main.hs
@@ -1,11 +1,11 @@
module Main (main) where
-import Dfetch.Battery (allBatteries)
+import Dfetch.Battery (renderBat, allBatteries)
import Dfetch.Brightness (allBs)
main :: IO ()
main = do
- bats <- allBatteries
+ bats <- renderBat <$> allBatteries
backlights <- allBs
- print bats
+ putStrLn bats
print backlights