mirror of
https://github.com/xmonad/xmonad.git
synced 2025-05-19 00:20:22 -07:00
Allow for sharing of home directory across architectures.
This commit is contained in:
parent
c46f3ad549
commit
da167bfc11
3
Main.hs
3
Main.hs
@ -18,6 +18,7 @@ import XMonad
|
||||
|
||||
import Control.Exception (handle)
|
||||
import System.IO
|
||||
import System.Info
|
||||
import System.Environment
|
||||
import System.Posix.Process (executeFile)
|
||||
|
||||
@ -43,5 +44,5 @@ buildLaunch = do
|
||||
recompile False
|
||||
dir <- getXMonadDir
|
||||
args <- getArgs
|
||||
executeFile (dir ++ "/xmonad") False args Nothing
|
||||
executeFile (dir ++ "/xmonad-"++arch++"-"++os) False args Nothing
|
||||
return ()
|
||||
|
@ -38,6 +38,7 @@ import Control.Applicative
|
||||
import Control.Monad.State
|
||||
import Control.Monad.Reader
|
||||
import System.IO
|
||||
import System.Info
|
||||
import System.Posix.Process (executeFile, forkProcess, getProcessStatus, createSession)
|
||||
import System.Process
|
||||
import System.Directory
|
||||
@ -355,14 +356,16 @@ getXMonadDir = io $ getAppUserDataDirectory "xmonad"
|
||||
recompile :: MonadIO m => Bool -> m ()
|
||||
recompile force = io $ do
|
||||
dir <- getXMonadDir
|
||||
let bin = dir ++ "/" ++ "xmonad"
|
||||
err = bin ++ ".errors"
|
||||
src = bin ++ ".hs"
|
||||
let binn = "xmonad-"++arch++"-"++os
|
||||
bin = dir ++ "/" ++ binn
|
||||
base = dir ++ "/" ++ "xmonad"
|
||||
err = base ++ ".errors"
|
||||
src = base ++ ".hs"
|
||||
srcT <- getModTime src
|
||||
binT <- getModTime bin
|
||||
when (force || srcT > binT) $ do
|
||||
status <- bracket (openFile err WriteMode) hClose $ \h -> do
|
||||
waitForProcess =<< runProcess "ghc" ["--make", "xmonad.hs", "-i", "-no-recomp", "-v0"] (Just dir)
|
||||
waitForProcess =<< runProcess "ghc" ["--make", "xmonad.hs", "-i", "-no-recomp", "-v0", "-o",binn] (Just dir)
|
||||
Nothing Nothing Nothing (Just h)
|
||||
|
||||
-- now, if it fails, run xmessage to let the user know:
|
||||
|
Loading…
x
Reference in New Issue
Block a user