From 59c17dbdb1ca05f690fc47dca77ac452b0efd721 Mon Sep 17 00:00:00 2001 From: Norbert Zeh Date: Fri, 4 Jun 2010 16:41:53 +0200 Subject: Fix strange formatting of CPU frequencies Ignore-this: 8c7108dbb071318135c54f0ff830c065 This patch displays frequencies under 1GHz as MHz and above 1GHz as GHz. Unfortunately, it was also necessary to touch CoreCommon.hs and CoreTemp.hs to implement this. darcs-hash:20100604144153-18a2b-cea493ec887c16a50bcef0db001ebbce3ccef74f.gz --- Plugins/Monitors/CoreCommon.hs | 13 +++++++------ Plugins/Monitors/CoreTemp.hs | 2 +- Plugins/Monitors/CpuFreq.hs | 6 ++++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Plugins/Monitors/CoreCommon.hs b/Plugins/Monitors/CoreCommon.hs index 95d8613..80e7700 100644 --- a/Plugins/Monitors/CoreCommon.hs +++ b/Plugins/Monitors/CoreCommon.hs @@ -27,12 +27,12 @@ import Data.List (isPrefixOf) -- is performed. checkedDataRetrieval :: (Num a, Ord a, Show a) => String -> String -> String -> String -> (Double -> a) - -> Monitor String -checkedDataRetrieval failureMessage dir file pattern trans = do + -> (a -> String) -> Monitor String +checkedDataRetrieval failureMessage dir file pattern trans fmt = do exists <- io $ fileExist $ concat [dir, "/", pattern, "0/", file] case exists of False -> return failureMessage - True -> retrieveData dir file pattern trans + True -> retrieveData dir file pattern trans fmt -- | -- Function retrieves data from files in directory dir specified by @@ -40,11 +40,12 @@ checkedDataRetrieval failureMessage dir file pattern trans = do -- to each one. Final array is processed by template parser function -- and returned as monitor string. retrieveData :: (Num a, Ord a, Show a) => - String -> String -> String -> (Double -> a) -> Monitor String -retrieveData dir file pattern trans = do + String -> String -> String -> (Double -> a) -> (a -> String) -> + Monitor String +retrieveData dir file pattern trans fmt = do count <- io $ dirCount dir pattern contents <- io $ mapM getGuts $ files count - values <- mapM (showWithColors show) $ map conversion contents + values <- mapM (showWithColors fmt) $ map conversion contents parseTemplate values where getGuts f = withFile f ReadMode hGetLine diff --git a/Plugins/Monitors/CoreTemp.hs b/Plugins/Monitors/CoreTemp.hs index 66ac637..a24b284 100644 --- a/Plugins/Monitors/CoreTemp.hs +++ b/Plugins/Monitors/CoreTemp.hs @@ -37,5 +37,5 @@ runCoreTemp _ = do pattern = "coretemp." divisor = 1e3 :: Double failureMessage = "CoreTemp: N/A" - checkedDataRetrieval failureMessage dir file pattern (/divisor) + checkedDataRetrieval failureMessage dir file pattern (/divisor) show diff --git a/Plugins/Monitors/CpuFreq.hs b/Plugins/Monitors/CpuFreq.hs index 70482f5..fd1da4c 100644 --- a/Plugins/Monitors/CpuFreq.hs +++ b/Plugins/Monitors/CpuFreq.hs @@ -23,7 +23,7 @@ import Plugins.Monitors.CoreCommon -- cpu frequencies. cpuFreqConfig :: IO MConfig cpuFreqConfig = mkMConfig - "Freq: GHz" -- template + "Freq: " -- template (zipWith (++) (repeat "cpu") (map show [0 :: Int ..])) -- available -- replacements @@ -36,5 +36,7 @@ runCpuFreq _ = do pattern = "cpu" divisor = 1e6 :: Double failureMessage = "CpuFreq: N/A" - checkedDataRetrieval failureMessage dir file pattern (/divisor) + fmt x | x < 1 = (show (round (x * 1000) :: Integer)) ++ "MHz" + | otherwise = (show x) ++ "GHz" + checkedDataRetrieval failureMessage dir file pattern (/divisor) fmt -- cgit v1.2.3