summaryrefslogtreecommitdiffhomepage
path: root/src/Plugins/Monitors/CpuFreq.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Plugins/Monitors/CpuFreq.hs')
-rw-r--r--src/Plugins/Monitors/CpuFreq.hs32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/Plugins/Monitors/CpuFreq.hs b/src/Plugins/Monitors/CpuFreq.hs
index dcf75e5..8301547 100644
--- a/src/Plugins/Monitors/CpuFreq.hs
+++ b/src/Plugins/Monitors/CpuFreq.hs
@@ -18,22 +18,24 @@ import Plugins.Monitors.Common
import Plugins.Monitors.CoreCommon
-- |
--- Cpu frequency default configuration. Default template contains only one
--- core frequency, user should specify custom template in order to get more
--- cpu frequencies.
+-- Cpu frequency default configuration. Default template contains only
+-- one core frequency, user should specify custom template in order to
+-- get more cpu frequencies.
cpuFreqConfig :: IO MConfig
-cpuFreqConfig = mkMConfig
- "Freq: <cpu0>" -- template
- (zipWith (++) (repeat "cpu") (map show [0 :: Int ..])) -- available
- -- replacements
+cpuFreqConfig =
+ mkMConfig "Freq: <cpu0>" (map ((++) "cpu" . show) [0 :: Int ..])
+
-- |
--- Function retrieves monitor string holding the cpu frequency (or frequencies)
+-- Function retrieves monitor string holding the cpu frequency (or
+-- frequencies)
runCpuFreq :: [String] -> Monitor String
-runCpuFreq _ = let path = ["/sys/devices/system/cpu/cpu", "/cpufreq/scaling_cur_freq"]
- divisor = 1e6 :: Double
- failureMessage = "CpuFreq: N/A"
- fmt x | x < 1 = (show (round (x * 1000) :: Integer)) ++ "MHz"
- | otherwise = (show x) ++ "GHz"
- in checkedDataRetrieval failureMessage path Nothing (/divisor) fmt
-
+runCpuFreq _ = do
+ suffix <- getConfigValue useSuffix
+ let path = ["/sys/devices/system/cpu/cpu", "/cpufreq/scaling_cur_freq"]
+ divisor = 1e6 :: Double
+ fmt x | x < 1 = show (round (x * 1000) :: Integer) ++
+ if suffix then "MHz" else ""
+ | otherwise = show x ++ if suffix then "GHz" else ""
+ failureMessage <- getConfigValue naString
+ checkedDataRetrieval failureMessage [path] Nothing (/divisor) fmt