zephyr-0.5.3: app/Main.hs
module Main (main) where
import Data.Version (showVersion)
import qualified Options.Applicative as Opts
import qualified Paths_zephyr as Paths
import System.Environment (getArgs)
import qualified System.IO as IO
import Command.Run ( runZephyr )
import Command.Options ( parseOptions )
main :: IO ()
main = do
IO.hSetEncoding IO.stdout IO.utf8
IO.hSetEncoding IO.stderr IO.utf8
let pinfo = Opts.info (versionOpt <*> Opts.helper <*> parseOptions)
(Opts.progDesc "tree-shaking breeze for PureScript")
getArgs
>>= Opts.handleParseResult . execParserPure pinfo
>>= runZephyr
where
execParserPure :: Opts.ParserInfo a -> [String] -> Opts.ParserResult a
execParserPure pinfo [] = Opts.Failure $
Opts.parserFailure Opts.defaultPrefs pinfo (Opts.ShowHelpText Nothing) mempty
execParserPure pinfo args = Opts.execParserPure Opts.defaultPrefs pinfo args
versionOpt :: Opts.Parser (a -> a)
versionOpt = Opts.abortOption (Opts.InfoMsg versionString) $
Opts.long "version"
<> Opts.help "Show the version number"
<> Opts.hidden
where
versionString = showVersion Paths.version