Archived
1
0
Fork 0

Moved files around as a preliminary for architectural changes.

This commit is contained in:
Julien Dessaux 2010-07-03 21:26:00 +02:00
parent d97177ce3b
commit 11c2c16835
29 changed files with 17 additions and 0 deletions

58
Main.hs
View file

@ -1,58 +0,0 @@
module Main (main) where
import Control.Monad (when)
import Prelude hiding (catch)
import System.Directory
import System.Environment
import System.Exit
import System.FilePath
import System.Info
import System.IO
import System.Posix.Process (executeFile)
import System.Process
-- | Dynamic launching function
main :: IO ()
main = do
args <- getArgs
case args of
[] -> buildLaunch
["--help"] -> usage
_ -> fail "unrecognized flags"
usage :: IO ()
usage = do
self <- getProgName
putStr . unlines $
concat ["Usage: ", self, " [OPTION]"] :
"Options:" :
" --help : Print this message" :
[]
buildLaunch :: IO ()
buildLaunch = do
_ <- recompile
dir <- getAppUserDataDirectory "hsbot"
args <- getArgs
_ <- executeFile (dir ++ "/hsbot-" ++ arch ++ "-" ++ os) False args Nothing
return ()
recompile :: IO (Bool)
recompile = do
dir <- getAppUserDataDirectory "hsbot"
let binn = "hsbot-"++arch++"-"++os
base = dir </> "hsbot"
err = base ++ ".errors"
src = base ++ ".hs"
errorHandle <- openFile err WriteMode
exitCode <- waitForProcess =<< runProcess "ghc" ["--make", "hsbot.hs", "-fforce-recomp", "-XScopedTypeVariables", "-o", binn] (Just dir)
Nothing Nothing Nothing (Just errorHandle)
hClose errorHandle
when (exitCode /= ExitSuccess) $ do
ghcErr <- readFile err
let msg = unlines $
["Error detected while loading hsbot configuration file: " ++ src]
++ lines ghcErr ++ ["","Please check the file for errors."]
hPutStrLn stderr msg
return (exitCode == ExitSuccess)