diff options
author | slotThe <soliditsallgood@tuta.io> | 2020-01-09 20:31:31 +0100 |
---|---|---|
committer | slotThe <soliditsallgood@tuta.io> | 2020-01-09 20:31:31 +0100 |
commit | 36c69246f1a19af2a0713a8d8c7ab59ad108736f (patch) | |
tree | 2b318a7438ce74ae5b8013ecfe94e611fc5aa070 /src/Xmobar/Plugins/Monitors/Disk.hs | |
parent | e5218c3607e6c3e6dc689b56ef707abe05e75ffe (diff) | |
download | xmobar-36c69246f1a19af2a0713a8d8c7ab59ad108736f.tar.gz xmobar-36c69246f1a19af2a0713a8d8c7ab59ad108736f.tar.bz2 |
Remove remaining redundant functions and use generic parseOptsWith instead
Diffstat (limited to 'src/Xmobar/Plugins/Monitors/Disk.hs')
-rw-r--r-- | src/Xmobar/Plugins/Monitors/Disk.hs | 74 |
1 files changed, 35 insertions, 39 deletions
diff --git a/src/Xmobar/Plugins/Monitors/Disk.hs b/src/Xmobar/Plugins/Monitors/Disk.hs index 6af99a1..debc522 100644 --- a/src/Xmobar/Plugins/Monitors/Disk.hs +++ b/src/Xmobar/Plugins/Monitors/Disk.hs @@ -34,26 +34,24 @@ data DiskIOOpts = DiskIOOpts , contiguous :: Bool } -parseDiskIOOpts :: [String] -> IO DiskIOOpts -parseDiskIOOpts argv = - case getOpt Permute options argv of - (o, _, []) -> return $ foldr id defaultOpts o - (_, _, errs) -> ioError . userError $ concat errs - where defaultOpts = DiskIOOpts - { totalIconPattern = Nothing - , writeIconPattern = Nothing - , readIconPattern = Nothing - , contiguous = False - } - options = - [ Option "" ["total-icon-pattern"] (ReqArg (\x o -> - o { totalIconPattern = Just $ parseIconPattern x}) "") "" - , Option "" ["write-icon-pattern"] (ReqArg (\x o -> - o { writeIconPattern = Just $ parseIconPattern x}) "") "" - , Option "" ["read-icon-pattern"] (ReqArg (\x o -> - o { readIconPattern = Just $ parseIconPattern x}) "") "" - , Option "c" ["contiguous"] (NoArg (\o -> o {contiguous = True})) "" - ] +dioDefaultOpts :: DiskIOOpts +dioDefaultOpts = DiskIOOpts + { totalIconPattern = Nothing + , writeIconPattern = Nothing + , readIconPattern = Nothing + , contiguous = False + } + +dioOptions :: [OptDescr (DiskIOOpts -> DiskIOOpts)] +dioOptions = + [ Option "" ["total-icon-pattern"] (ReqArg (\x o -> + o { totalIconPattern = Just $ parseIconPattern x}) "") "" + , Option "" ["write-icon-pattern"] (ReqArg (\x o -> + o { writeIconPattern = Just $ parseIconPattern x}) "") "" + , Option "" ["read-icon-pattern"] (ReqArg (\x o -> + o { readIconPattern = Just $ parseIconPattern x}) "") "" + , Option "c" ["contiguous"] (NoArg (\o -> o {contiguous = True})) "" + ] diskIOConfig :: IO MConfig diskIOConfig = mkMConfig "" ["total", "read", "write" @@ -72,23 +70,21 @@ data DiskUOpts = DiskUOpts , contiguousU :: Bool } -parseDiskUOpts :: [String] -> IO DiskUOpts -parseDiskUOpts argv = - case getOpt Permute options argv of - (o, _, []) -> return $ foldr id defaultOpts o - (_, _, errs) -> ioError . userError $ concat errs - where defaultOpts = DiskUOpts - { freeIconPattern = Nothing - , usedIconPattern = Nothing - , contiguousU = False - } - options = - [ Option "" ["free-icon-pattern"] (ReqArg (\x o -> - o { freeIconPattern = Just $ parseIconPattern x}) "") "" - , Option "" ["used-icon-pattern"] (ReqArg (\x o -> - o { usedIconPattern = Just $ parseIconPattern x}) "") "" - , Option "c" ["contiguous"] (NoArg (\o -> o {contiguousU = True})) "" - ] +duDefaultOpts :: DiskUOpts +duDefaultOpts = DiskUOpts + { freeIconPattern = Nothing + , usedIconPattern = Nothing + , contiguousU = False + } + +duOptions :: [OptDescr (DiskUOpts -> DiskUOpts)] +duOptions = + [ Option "" ["free-icon-pattern"] (ReqArg (\x o -> + o { freeIconPattern = Just $ parseIconPattern x}) "") "" + , Option "" ["used-icon-pattern"] (ReqArg (\x o -> + o { usedIconPattern = Just $ parseIconPattern x}) "") "" + , Option "c" ["contiguous"] (NoArg (\o -> o {contiguousU = True})) "" + ] diskUConfig :: IO MConfig diskUConfig = mkMConfig "" @@ -208,7 +204,7 @@ runDiskIO' opts (tmp, xs) = do runDiskIO :: DevDataRef -> [(String, String)] -> [String] -> Monitor String runDiskIO dref disks argv = do - opts <- io $ parseDiskIOOpts argv + opts <- io $ parseOptsWith dioOptions dioDefaultOpts argv dev <- io $ mountedOrDiskDevices (map fst disks) dat <- io $ mountedData dref (map fst dev) strs <- mapM (runDiskIO' opts) $ devTemplates disks dev dat @@ -254,6 +250,6 @@ runDiskU' opts tmp path = do runDiskU :: [(String, String)] -> [String] -> Monitor String runDiskU disks argv = do devs <- io $ mountedDevices (map fst disks) - opts <- io $ parseDiskUOpts argv + opts <- io $ parseOptsWith duOptions duDefaultOpts argv strs <- mapM (\(d, p) -> runDiskU' opts (findTempl d p disks) p) devs return $ (if contiguousU opts then concat else unwords) strs |