mirror of
https://github.com/xmonad/xmonad.git
synced 2025-05-19 00:20:22 -07:00
Do our own recompilation checking: only launch ghc if the xmonad.hs is newer than its .o file
This commit is contained in:
parent
4bb6371155
commit
45eea722be
@ -294,13 +294,21 @@ restart mprog resume = do
|
||||
|
||||
-- | Recompile ~\/xmonad\/xmonad.hs.
|
||||
--
|
||||
-- Raises an exception if ghc can't be found.
|
||||
-- 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.
|
||||
--
|
||||
recompile :: IO ()
|
||||
recompile = do
|
||||
dir <- fmap (++ "/.xmonad") getHomeDirectory
|
||||
pid <- runProcess "ghc" ["--make", "xmonad.hs", "-i"] (Just dir)
|
||||
dir <- liftM (++ "/.xmonad") getHomeDirectory
|
||||
let src = dir ++ "/" ++ "xmonad.hs"
|
||||
obj = dir ++ "/" ++ "xmonad.o"
|
||||
yes <- doesFileExist src
|
||||
when yes $ do
|
||||
srcT <- getModificationTime src
|
||||
objT <- getModificationTime obj
|
||||
when (srcT > objT) $ do
|
||||
waitForProcess =<< runProcess "ghc" ["--make", "xmonad.hs", "-i"] (Just dir)
|
||||
Nothing Nothing Nothing Nothing
|
||||
waitForProcess pid
|
||||
return ()
|
||||
|
||||
-- | Run a side effecting action with the current workspace. Like 'when' but
|
||||
|
Loading…
x
Reference in New Issue
Block a user