pythia-0.1: A utility program for retrieving system information.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pythia.Services.Battery.Acpi

Contents

Description

This module provides functionality for retrieving battery information using ACPI.

Since: 0.1

Synopsis

Query

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

Expand
>>> displayException $ MkAcpiParseError "parse error"
"Acpi parse error: parse error"

Since: 0.1

Constructors

MkAcpiParseError Text 

parseBattery :: Text -> Either AcpiParseError Battery Source #

Attempts to parse the output of acpi.

Examples

Expand
>>> 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