aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad/Core.hs
diff options
context:
space:
mode:
authorDon Stewart <dons@galois.com>2007-11-19 02:15:28 +0100
committerDon Stewart <dons@galois.com>2007-11-19 02:15:28 +0100
commite40e2b9c88cbb816ac0cb0e0a243bf93afa7c4fb (patch)
treefb37ffccd6b70847e2e99c597b14a664c3f15f48 /XMonad/Core.hs
parent9b54117ae59c5502b271b4fbdaf84549b64c0076 (diff)
downloadxmonad-e40e2b9c88cbb816ac0cb0e0a243bf93afa7c4fb.tar.gz
xmonad-e40e2b9c88cbb816ac0cb0e0a243bf93afa7c4fb.tar.xz
xmonad-e40e2b9c88cbb816ac0cb0e0a243bf93afa7c4fb.zip
only check xmonad.hs against the xmonad binary, not the .o file (meaning you can remove it if you like)
darcs-hash:20071119011528-cba2c-a78aa9afca0a09be2e25c784b0bb6b55f94da3d0.gz
Diffstat (limited to 'XMonad/Core.hs')
-rw-r--r--XMonad/Core.hs14
1 files changed, 8 insertions, 6 deletions
diff --git a/XMonad/Core.hs b/XMonad/Core.hs
index 90bfd9a..5ea2d03 100644
--- a/XMonad/Core.hs
+++ b/XMonad/Core.hs
@@ -297,16 +297,18 @@ restart mprog resume = do
-- The -i flag is used to restrict recompilation to the xmonad.hs file.
-- Raises an exception if GHC can't be found, or if anything else goes wrong.
--
+-- The file is only recompiled if it is newer than its binary.
+--
recompile :: IO ()
recompile = do
- dir <- liftM (++ "/.xmonad") getHomeDirectory
- let src = dir ++ "/" ++ "xmonad.hs"
- obj = dir ++ "/" ++ "xmonad.o"
- yes <- doesFileExist src
+ dir <- liftM (++ "/.xmonad") getHomeDirectory
+ let bin = dir ++ "/" ++ "xmonad"
+ src = bin ++ ".hs"
+ yes <- doesFileExist src
when yes $ do
srcT <- getModificationTime src
- objT <- getModificationTime obj
- when (srcT > objT) $ do
+ binT <- getModificationTime bin
+ when (srcT > binT) $ do
waitForProcess =<< runProcess "ghc" ["--make", "xmonad.hs", "-i"] (Just dir)
Nothing Nothing Nothing Nothing
return ()