diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/code/dfetch/app/Dfetch/Battery.hs | 26 | ||||
| -rw-r--r-- | packages/code/dfetch/app/Dfetch/Brightness.hs | 8 | ||||
| -rw-r--r-- | packages/code/dfetch/app/Main.hs | 8 | ||||
| -rw-r--r-- | packages/code/dfetch/dfetch.cabal | 27 | ||||
| -rw-r--r-- | packages/code/dfetch/package.nix | 5 |
5 files changed, 74 insertions, 0 deletions
diff --git a/packages/code/dfetch/app/Dfetch/Battery.hs b/packages/code/dfetch/app/Dfetch/Battery.hs new file mode 100644 index 0000000..6e6a0a8 --- /dev/null +++ b/packages/code/dfetch/app/Dfetch/Battery.hs @@ -0,0 +1,26 @@ +module Dfetch.Battery + ( Battery(..) + , allBatteries + ) where + +import System.FilePath ((</>)) +import System.Directory (listDirectory) +import Data.List (isPrefixOf) + +basePath :: FilePath +basePath = "/sys/class/power_supply/" + +data Battery = Battery + {name :: String, capacity :: Int} deriving (Show) + +getCapacity :: String -> IO Battery +getCapacity name = Battery <$> pure name <*> capacity + where + path = basePath </> name </> "capacity" + capacity = read <$> readFile path + +findBatteries :: IO [String] +findBatteries = filter ("BAT" `isPrefixOf`) <$> listDirectory basePath + +allBatteries :: IO [Battery] +allBatteries = findBatteries >>= traverse getCapacity diff --git a/packages/code/dfetch/app/Dfetch/Brightness.hs b/packages/code/dfetch/app/Dfetch/Brightness.hs new file mode 100644 index 0000000..912905a --- /dev/null +++ b/packages/code/dfetch/app/Dfetch/Brightness.hs @@ -0,0 +1,8 @@ +module Dfetch.Brightness where + +import System.FilePath ((</>)) +import System.Directory (listDirectory) +import Data.List (isPrefixOf) + +basePath :: FilePath +basePath = "/sys/class/backlight/" diff --git a/packages/code/dfetch/app/Main.hs b/packages/code/dfetch/app/Main.hs new file mode 100644 index 0000000..d9a15ac --- /dev/null +++ b/packages/code/dfetch/app/Main.hs @@ -0,0 +1,8 @@ +module Main (main) where + +import Dfetch.Battery (allBatteries) + +main :: IO () +main = do + bs <- allBatteries + print bs diff --git a/packages/code/dfetch/dfetch.cabal b/packages/code/dfetch/dfetch.cabal new file mode 100644 index 0000000..4b23eb3 --- /dev/null +++ b/packages/code/dfetch/dfetch.cabal @@ -0,0 +1,27 @@ +cabal-version: 3.0 +name: dfetch +version: 0.1.0.0 +-- synopsis: +-- description: +license: BSD-3-Clause +license-file: LICENSE +author: Kleidi Bujari +maintainer: mail@4kb.net +-- copyright: +build-type: Simple +extra-doc-files: CHANGELOG.md +-- extra-source-files: + +common warnings + ghc-options: -Wall + +executable dfetch + import: warnings + main-is: Main.hs + -- other-modules: + -- other-extensions: + build-depends: base ^>=4.20.2.0, + directory >= 1.3.8.5, + filepath >= 1.5.4.0 + hs-source-dirs: app + default-language: Haskell2010 diff --git a/packages/code/dfetch/package.nix b/packages/code/dfetch/package.nix new file mode 100644 index 0000000..1cf998d --- /dev/null +++ b/packages/code/dfetch/package.nix @@ -0,0 +1,5 @@ +{ haskellPackages, ... }: + +haskellPackages.developPackage { + root = ./.; +} |
