git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Add --version and --help options to psc-publish
d0ebbccGary Burgess
psc-publish/Main.hs+16−1
@@ -31,6 +31,8 @@ import Control.Monad.Trans.Except
31import Control.Monad.Error.Class (MonadError(..))
31import Control.Monad.Error.Class (MonadError(..))
32import Control.Monad.Writer
32import Control.Monad.Writer
33
33
34+import Options.Applicative hiding (str)
35+
34import System.Directory (doesFileExist)
36import System.Directory (doesFileExist)
35import System.Process (readProcess)
37import System.Process (readProcess)
36import System.Exit (exitFailure)
38import System.Exit (exitFailure)
@@ -42,11 +44,24 @@ import qualified Web.Bower.PackageMeta as Bower
42
44
43import qualified Language.PureScript as P (version)
45import qualified Language.PureScript as P (version)
44import qualified Language.PureScript.Docs as D
46import qualified Language.PureScript.Docs as D
47+import qualified Paths_purescript as Paths
48+
45import Utils
49import Utils
46import ErrorsWarnings
50import ErrorsWarnings
47
51
48main :: IO ()
52main :: IO ()
49−main = do
53+main = execParser opts >> publish
54+ where
55+ opts = info (version <*> helper) infoModList
56+ infoModList = fullDesc <> headerInfo <> footerInfo
57+ headerInfo = header "psc-publish - Generates documentation packages for upload to http://pursuit.purescript.org"
58+ footerInfo = footer $ "psc-publish " ++ showVersion Paths.version
59+
60+ version :: Parser (a -> a)
61+ version = abortOption (InfoMsg (showVersion Paths.version)) $ long "version" <> help "Show the version number" <> hidden
62+
63+publish :: IO ()
64+publish = do
50 pkg <- preparePackage
65 pkg <- preparePackage
51 BL.putStrLn (A.encode pkg)
66 BL.putStrLn (A.encode pkg)
52
67