hoodle-0.4: lib/Hoodle/StartUp.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE RecordWildCards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Hoodle.StartUp
-- Copyright : (c) 2012, 2014 Ian-Woo Kim
--
-- License : BSD3
-- Maintainer : Ian-Woo Kim <ianwookim@gmail.com>
-- Stability : experimental
-- Portability : GHC
--
-----------------------------------------------------------------------------
module Hoodle.StartUp where
-- from other packages
#ifdef DYRE
import qualified Config.Dyre as Dyre
#endif
import System.Console.CmdArgs
import System.FilePath
import System.Environment
-- from hoodle-platform
import Hoodle.Script
-- from this package
import Hoodle.ProgType
import Hoodle.Command
-- |
hoodleMain :: ScriptConfig -> IO ()
hoodleMain ScriptConfig {..} = do
case errorMsg of
Nothing -> return ()
Just em -> putStrLn $ "Error: " ++ em
maybe (return ()) putStrLn message
param <- cmdArgs mode
commandLineProcess param hook
-- |
hoodleStartMain :: ScriptConfig -> IO ()
hoodleStartMain =
#ifdef DYRE
Dyre.wrapMain $ Dyre.defaultParams
{ Dyre.projectName = "start"
, Dyre.configDir = Just dirHoodled
, Dyre.realMain = hoodleMain
, Dyre.showError = showError
, Dyre.ghcOpts = [ "-threaded" ]
}
#else
hoodleMain
#endif
-- |
dirHoodled :: IO FilePath
dirHoodled = do
homedir <- getEnv "HOME"
return (homedir </> ".hoodle.d")