123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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
- import Util
- main :: IO ()
- main = do
- conf <- readConfig
- 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
- data HatchCommand
- = SwitchCompiler
- | FetchCompiler
- deriving (Eq, Show)
- runAsHatch :: ConfigFile -> IO ()
- runAsHatch _ = do
- printErr "testing"
- putStrLn "Invoking as Hatch!"
|