diff --git a/postgrest.cabal b/postgrest.cabal index 2936fa2df..6cf919de7 100644 --- a/postgrest.cabal +++ b/postgrest.cabal @@ -32,12 +32,12 @@ executable postgrest , bytestring, text, split, string-conversions , stringsearch , containers, unordered-containers - , optparse-applicative >= 0.9.1 && < 0.10 + , optparse-applicative == 0.11.* , regex-base, regex-tdfa , regex-tdfa-text , Ranged-sets , transformers, MissingH - , bcrypt, base64-string + , bcrypt >= 0.0.6, base64-string , network-uri >= 2.6 , resource-pool , blaze-builder @@ -75,16 +75,16 @@ Test-Suite spec , SpecHelper Build-Depends: base, hspec >= 2.1.2, QuickCheck , hspec-wai >= 0.5.0, hspec-wai-json - , hasql == 0.7.*, hasql-backend - , hasql-postgres == 0.10.* - , warp >= 3.0.2, wai >= 3.0.1 + , hasql, hasql-backend + , hasql-postgres + , warp, wai , packdeps, hlint , HTTP, convertible , case-insensitive , wai-extra, wai-cors, containers - , wai-middleware-static >= 0.6.0 + , wai-middleware-static , http-types, scientific, time - , bytestring, aeson, network >= 2.6 + , bytestring, aeson, network , text, optparse-applicative , stringsearch , unordered-containers @@ -95,7 +95,7 @@ Test-Suite spec , Ranged-sets , transformers, MissingH, split , bcrypt, base64-string - , network-uri >= 2.6 + , network-uri , resource-pool , blaze-builder , vector diff --git a/src/Config.hs b/src/Config.hs index 1f468a910..84b1c6f78 100644 --- a/src/Config.hs +++ b/src/Config.hs @@ -24,16 +24,16 @@ data AppConfig = AppConfig { argParser :: Parser AppConfig argParser = AppConfig - <$> strOption (long "db-name" <> short 'd' <> help "name of database") - <*> option (long "db-port" <> short 'P' <> value 5432 <> help "postgres server port") - <*> strOption (long "db-user" <> short 'U' <> help "postgres authenticator role") - <*> strOption (long "db-pass" <> value "" <> help "password for authenticator role") - <*> strOption (long "db-host" <> short 'h' <> value "localhost" <> help "postgres server hostname") + <$> strOption (long "db-name" <> short 'd' <> metavar "NAME" <> help "name of database") + <*> option auto (long "db-port" <> short 'P' <> metavar "PORT" <> value 5432 <> help "postgres server port" <> showDefault) + <*> strOption (long "db-user" <> short 'U' <> metavar "ROLE" <> help "postgres authenticator role") + <*> strOption (long "db-pass" <> metavar "PASS" <> value "" <> help "password for authenticator role") + <*> strOption (long "db-host" <> metavar "HOST" <> value "localhost" <> help "postgres server hostname" <> showDefault) - <*> option (long "port" <> short 'p' <> value 3000 <> help "port number on which to run HTTP server") - <*> strOption (long "anonymous" <> short 'a' <> help "postgres role to use for non-authenticated requests") - <*> switch (long "secure" <> short 's' <> help "Redirect all requests to HTTPS") - <*> option (long "db-pool" <> value 10 <> help "Max connections in database pool") + <*> option auto (long "port" <> short 'p' <> metavar "PORT" <> value 3000 <> help "port number on which to run HTTP server" <> showDefault) + <*> strOption (long "anonymous" <> short 'a' <> metavar "ROLE" <> help "postgres role to use for non-authenticated requests") + <*> switch (long "secure" <> short 's' <> help "Redirect all requests to HTTPS") + <*> option auto (long "db-pool" <> metavar "COUNT" <> value 10 <> help "Max connections in database pool" <> showDefault) defaultCorsPolicy :: CorsResourcePolicy defaultCorsPolicy = CorsResourcePolicy Nothing diff --git a/src/Main.hs b/src/Main.hs index 7f58e0cf9..ca0739499 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -24,7 +24,14 @@ import Config (AppConfig(..), argParser, corsPolicy) main :: IO () main = do - conf <- execParser (info (helper <*> argParser) describe) + let opts = info (helper <*> argParser) $ + fullDesc + <> progDesc ( + "PostgREST " + <> prettyVersion + <> " / create a REST API to an existing Postgres database" + ) + conf <- execParser opts let port = configPort conf unless (configSecure conf) $ @@ -59,5 +66,4 @@ main = do either (respond . errResponse) respond resOrError where - describe = progDesc "create a REST API to an existing Postgres database" prettyVersion = intercalate "." $ map show $ versionBranch version