{-# LANGUAGE CPP #-}
module Xmobar.Plugins.Monitors.Load (loadConfig, runLoad) where
import Xmobar.Plugins.Monitors.Common
import Xmobar.Plugins.Monitors.Load.Common (Result(..))
#if defined(freebsd_HOST_OS)
import qualified Xmobar.Plugins.Monitors.Load.FreeBSD as ML
#else
import qualified Xmobar.Plugins.Monitors.Load.Linux as ML
#endif
loadConfig :: IO MConfig
loadConfig :: IO MConfig
loadConfig = String -> [String] -> IO MConfig
mkMConfig String
"Load: <load1>" [String
"load1", String
"load5", String
"load15"]
runLoad :: [String] -> Monitor String
runLoad :: [String] -> Monitor String
runLoad [String]
_ = do
result <- IO Result -> Monitor Result
forall a. IO a -> Monitor a
io IO Result
ML.fetchLoads
case result of
Result [Float]
loads ->
do
d <- Selector Int -> Monitor Int
forall a. Selector a -> Monitor a
getConfigValue Selector Int
decDigits
parseTemplate =<< mapM (showWithColors (showDigits d)) loads
Result
NA -> Selector String -> Monitor String
forall a. Selector a -> Monitor a
getConfigValue Selector String
naString