1234567891011121314151617181920212223242526272829303132333435363738394041 |
- module Hatch
- ( main
- ) where
- import Lens.Family
- import qualified System.Environment as Sys
- import System.FilePath ((</>))
- import qualified System.FilePath as Sys
- import qualified System.Exit as Sys
- import qualified System.Posix.Process as Sys
- import Config
- import Types
- main :: IO ()
- main = do
- conf <- fetchConfig
- print (conf^.iniValueL)
- programName <- Sys.takeFileName `fmap` Sys.getProgName
- if programName == "hatch"
- then runAsHatch conf
- else runAsProxy conf programName
- runAsProxy :: ConfigFile -> FilePath -> IO ()
- runAsProxy conf program = do
- putStrLn ("Invoking as " ++ program)
- let ver = conf^.iniValueL.configCurrentCompiler
- case ver of
- Nothing -> Sys.die "No compiler configured!"
- Just c -> do
- let ver' = compilerString c
- root = conf^.iniValueL.configInstallPath </> ver'
- progn = root </> "bin" </> program
- args <- Sys.getArgs
- Sys.executeFile progn False args Nothing
- runAsHatch :: ConfigFile -> IO ()
- runAsHatch _ = do
- putStrLn "Invoking as Hatch!"
|