diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2011-12-10 16:48:11 +0100 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2011-12-10 16:48:11 +0100 | 
| commit | ecb3f46642e19b79d38c5dbc1ce2269040b13ec4 (patch) | |
| tree | 806ba6f1b7b26bce28038748aad76922b8e72f5d | |
| parent | f9a303f5f1b33a2196343aca8d5a79fabcd7302b (diff) | |
| download | xmobar-ecb3f46642e19b79d38c5dbc1ce2269040b13ec4.tar.gz xmobar-ecb3f46642e19b79d38c5dbc1ce2269040b13ec4.tar.bz2  | |
Fix for issue #62 (battery monitor on olpc hardware)
| -rw-r--r-- | src/Plugins/Monitors/Batt.hs | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Plugins/Monitors/Batt.hs b/src/Plugins/Monitors/Batt.hs index 77b2d62..662ff43 100644 --- a/src/Plugins/Monitors/Batt.hs +++ b/src/Plugins/Monitors/Batt.hs @@ -34,6 +34,7 @@ data BattOpts = BattOpts    , lowThreshold :: Float    , highThreshold :: Float    , onlineFile :: FilePath +  , chargeFile :: FilePath    }  defaultOpts :: BattOpts @@ -47,6 +48,7 @@ defaultOpts = BattOpts    , lowThreshold = -12    , highThreshold = -10    , onlineFile = "AC/online" +  , chargeFile = "charge_full"    }  options :: [OptDescr (BattOpts -> BattOpts)] @@ -60,6 +62,7 @@ options =    , Option "L" ["lowt"] (ReqArg (\x o -> o { lowThreshold = read x }) "") ""    , Option "H" ["hight"] (ReqArg (\x o -> o { highThreshold = read x }) "") ""    , Option "f" ["online"] (ReqArg (\x o -> o { onlineFile = x }) "") "" +  , Option "c" ["charge"] (ReqArg (\x o -> o { chargeFile = x }) "") ""    ]  parseOpts :: [String] -> IO BattOpts @@ -96,8 +99,8 @@ safeFileExist :: String -> IO Bool  safeFileExist f = handle noErrors $ fileExist f    where noErrors = const (return False) :: SomeException -> IO Bool -batteryFiles :: String -> IO Files -batteryFiles bat = +batteryFiles :: String -> String -> IO Files +batteryFiles charge_file bat =    do is_charge <- safeFileExist $ prefix </> "charge_now"       is_energy <- safeFileExist $ prefix </> "energy_now"       is_current <- safeFileExist $ prefix </> "current_now" @@ -107,7 +110,7 @@ batteryFiles bat =         (_, True) -> files "energy" cf         _ -> NoFiles    where prefix = sysDir </> bat -        files ch cf = Files { fFull = prefix </> ch ++ "_full" +        files ch cf = Files { fFull = prefix </> charge_file                              , fNow = prefix </> ch ++ "_now"                              , fCurrent = prefix </> cf                              , fVoltage = prefix </> "voltage_now" } @@ -151,7 +154,7 @@ runBatt = runBatt' ["BAT0","BAT1","BAT2"]  runBatt' :: [String] -> [String] -> Monitor String  runBatt' bfs args = do    opts <- io $ parseOpts args -  c <- io $ readBatteries opts =<< mapM batteryFiles bfs +  c <- io $ readBatteries opts =<< mapM (batteryFiles (chargeFile opts)) bfs    case c of      Result x w t s ->        do l <- fmtPercent x  | 
