Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Pythia.Services.Battery.UPower
Description
This module provides functionality for retrieving battery information using UPower.
Since: 0.1
Synopsis
- batteryShellApp :: (MonadPathReader m, MonadThrow m, MonadTypedProcess m) => m Battery
- supported :: MonadPathReader m => m Bool
- data UPowerParseError
- parseBattery :: Text -> Either UPowerParseError Battery
Query
batteryShellApp :: (MonadPathReader m, MonadThrow m, MonadTypedProcess m) => m Battery Source #
UPower query for Battery
.
Since: 0.1
supported :: MonadPathReader m => m Bool Source #
Returns a boolean determining if this program is supported on the current system.
Since: 0.1
Misc
data UPowerParseError Source #
Errors that can occur with upower.
Examples
>>>
displayException $ UPowerParseErrorPercentage "output"
"No percentage found in upower output: output"
>>>
displayException $ UPowerParseErrorStatus "output"
"No status found in upower output: output"
Since: 0.1
Constructors
UPowerParseErrorPercentage Text | Did not find percentage. Since: 0.1 |
UPowerParseErrorStatus Text | Did not find status. Since: 0.1 |
Instances
Exception UPowerParseError Source # | Since: 0.1 |
Defined in Pythia.Services.Battery.UPower Methods toException :: UPowerParseError -> SomeException # | |
Show UPowerParseError Source # | Since: 0.1 |
Defined in Pythia.Services.Battery.UPower Methods showsPrec :: Int -> UPowerParseError -> ShowS # show :: UPowerParseError -> String # showList :: [UPowerParseError] -> ShowS # | |
Eq UPowerParseError Source # | Since: 0.1 |
Defined in Pythia.Services.Battery.UPower Methods (==) :: UPowerParseError -> UPowerParseError -> Bool # (/=) :: UPowerParseError -> UPowerParseError -> Bool # |
parseBattery :: Text -> Either UPowerParseError Battery Source #
Attempts to parse the output of UPower.
Examples
>>>
parseBattery "state: fully-charged\npercentage: 100%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 100}, status = Full})
>>>
parseBattery "state: discharging\npercentage: 70%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 70}, status = Discharging})
>>>
parseBattery "state: charging\npercentage: 40%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 40}, status = Charging})
>>>
parseBattery "state: pending-charge\npercentage: 40%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 40}, status = Pending})
>>>
parseBattery "state: bad\npercentage: 40%"
Left (UPowerParseErrorStatus "state: bad\npercentage: 40%")
>>>
parseBattery "state: fully-charged"
Left (UPowerParseErrorPercentage "state: fully-charged")
>>>
parseBattery "percentage: 80%"
Left (UPowerParseErrorStatus "percentage: 80%")
>>>
parseBattery "nothing"
Left (UPowerParseErrorStatus "nothing")
Since: 0.1