Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Pythia.Services.Battery.Acpi
Description
This module provides functionality for retrieving battery information using ACPI.
Since: 0.1
Synopsis
- batteryShellApp :: (MonadPathReader m, MonadThrow m, MonadTypedProcess m) => m Battery
- supported :: MonadPathReader m => m Bool
- newtype AcpiParseError = MkAcpiParseError Text
- parseBattery :: Text -> Either AcpiParseError Battery
Query
batteryShellApp :: (MonadPathReader m, MonadThrow m, MonadTypedProcess m) => m Battery Source #
ACPI 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
newtype AcpiParseError Source #
Error parsing acpi output.
Examples
>>>
displayException $ MkAcpiParseError "parse error"
"Acpi parse error: parse error"
Since: 0.1
Constructors
MkAcpiParseError Text |
Instances
Exception AcpiParseError Source # | Since: 0.1 |
Defined in Pythia.Services.Battery.Acpi Methods toException :: AcpiParseError -> SomeException # | |
Show AcpiParseError Source # | Since: 0.1 |
Defined in Pythia.Services.Battery.Acpi Methods showsPrec :: Int -> AcpiParseError -> ShowS # show :: AcpiParseError -> String # showList :: [AcpiParseError] -> ShowS # | |
Eq AcpiParseError Source # | Since: 0.1 |
Defined in Pythia.Services.Battery.Acpi Methods (==) :: AcpiParseError -> AcpiParseError -> Bool # (/=) :: AcpiParseError -> AcpiParseError -> Bool # |
parseBattery :: Text -> Either AcpiParseError Battery Source #
Attempts to parse the output of acpi.
Examples
>>>
parseBattery "Battery 0: Full, 100%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 100}, status = Full})
>>>
parseBattery "Battery 0: Discharging, 80%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 80}, status = Discharging})
>>>
parseBattery "Battery 0: Charging, 40%"
Right (MkBattery {percentage = MkPercentage {unPercentage = UnsafeLRInterval 40}, status = Charging})
>>>
parseBattery "Battery 0: bad status, 80%"
Left (MkAcpiParseError "Acpi.hs:1:12:\n |\n1 | Battery 0: bad status, 80%\n | ^\nUnknown status\n")
>>>
parseBattery "Battery 0: Discharging, 150%"
Left (MkAcpiParseError "Acpi.hs:1:28:\n |\n1 | Battery 0: Discharging, 150%\n | ^\nexpecting percentage\n")
Since: 0.1