diff options
Diffstat (limited to 'XMonad/Util/Loggers.hs')
-rw-r--r-- | XMonad/Util/Loggers.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/XMonad/Util/Loggers.hs b/XMonad/Util/Loggers.hs index 3c8c3ee..19e6eae 100644 --- a/XMonad/Util/Loggers.hs +++ b/XMonad/Util/Loggers.hs @@ -52,7 +52,9 @@ import XMonad.Hooks.DynamicLog import XMonad.Util.Font (Align (..)) import XMonad.Util.NamedWindows (getName) +import Prelude hiding (catch) import Control.Applicative ((<$>)) +import Control.Exception import Data.List (isPrefixOf, isSuffixOf) import Data.Maybe (fromMaybe) import Data.Traversable (traverse) @@ -62,6 +64,9 @@ import System.Locale import System.Process (runInteractiveCommand) import System.Time +econst :: Monad m => a -> IOException -> m a +econst = const . return + -- $usage -- Use this module by importing it into your @~\/.xmonad\/xmonad.hs@: -- @@ -138,7 +143,7 @@ loadAvg = logCmd "/usr/bin/uptime | sed 's/.*: //; s/,//g'" -- | Create a 'Logger' from an arbitrary shell command. logCmd :: String -> Logger logCmd c = io $ do (_, out, _, _) <- runInteractiveCommand c - fmap Just (hGetLine out) `catch` (const $ return Nothing) + fmap Just (hGetLine out) `catch` econst Nothing -- no need to waitForProcess, we ignore SIGCHLD -- | Get a count of filtered files in a directory. |