aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad/Util/Loggers.hs
diff options
context:
space:
mode:
Diffstat (limited to 'XMonad/Util/Loggers.hs')
-rw-r--r--XMonad/Util/Loggers.hs7
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.