@@ -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
34+import Options.Applicative hiding (str)
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
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
45import Utils
49import Utils
46import ErrorsWarnings
50import ErrorsWarnings
48main :: IO ()
52main :: IO ()
49−main = do
53+main = execParser opts >> publish
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
60+ version :: Parser (a -> a)
61+ version = abortOption (InfoMsg (showVersion Paths.version)) $ long "version" <> help "Show the version number" <> hidden
50 pkg <- preparePackage
65 pkg <- preparePackage
51 BL.putStrLn (A.encode pkg)
66 BL.putStrLn (A.encode pkg)