diff options
| -rw-r--r-- | Plugins/Monitors/CoreCommon.hs | 12 | ||||
| -rw-r--r-- | Plugins/Monitors/CpuFreq.hs | 2 | 
2 files changed, 8 insertions, 6 deletions
| diff --git a/Plugins/Monitors/CoreCommon.hs b/Plugins/Monitors/CoreCommon.hs index d40b30a..f31ee42 100644 --- a/Plugins/Monitors/CoreCommon.hs +++ b/Plugins/Monitors/CoreCommon.hs @@ -16,6 +16,7 @@ module Plugins.Monitors.CoreCommon where  import Plugins.Monitors.Common  import System.Posix.Files (fileExist) +import System.IO (withFile, IOMode(ReadMode), hGetLine)  import System.Directory  import Data.Char (isDigit)  import Data.List (isPrefixOf) @@ -26,7 +27,7 @@ import Data.List (isPrefixOf)  -- is performed.  checkedDataRetrieval :: String -> String -> String -> String -> Double -> Monitor String  checkedDataRetrieval failureMessage dir file pattern divisor = do -    exists <- io $ fileExist $ foldl (++) dir ["/", pattern, "0/", file] +    exists <- io $ fileExist $ concat [dir, "/", pattern, "0/", file]      case exists of           False  -> return failureMessage           True   -> retrieveData dir file pattern divisor @@ -38,15 +39,16 @@ checkedDataRetrieval failureMessage dir file pattern divisor = do  retrieveData :: String -> String -> String -> Double -> Monitor String  retrieveData dir file pattern divisor = do      count <- io $ dirCount dir pattern -    contents <- io $ mapM readFile $ files count +    contents <- io $ mapM getGuts $ files count      values <- mapM (showWithColors show) $ map conversion contents      parseTemplate values      where +        getGuts file = withFile file ReadMode hGetLine          dirCount path str = getDirectoryContents path                              >>= return . length                                         . filter (\s -> str `isPrefixOf` s                                                         && isDigit (last s)) -        files count = [ foldl (++) dir [ "/", pattern, show i, "/", file ] -                      | i <- [0 .. count - 1] ] -        conversion = flip (/) divisor . (read :: String -> Double) +        files count = map (\i -> concat [dir, "/", pattern, show i, "/", file]) +                          [0 .. count - 1] +        conversion = (/divisor) . (read :: String -> Double) diff --git a/Plugins/Monitors/CpuFreq.hs b/Plugins/Monitors/CpuFreq.hs index 45b0c83..0cf37fb 100644 --- a/Plugins/Monitors/CpuFreq.hs +++ b/Plugins/Monitors/CpuFreq.hs @@ -25,7 +25,7 @@ cpuFreqConfig :: IO MConfig  cpuFreqConfig = mkMConfig         "Freq: <cpu0>GHz" -- template         (zipWith (++) (repeat "cpu") (map show [0 :: Int ..])) -- available -                                                               -- replacements +                                                              -- replacements  -- |  -- Function retrieves monitor string holding the cpu frequency (or frequencies) | 
