diff --git a/ringo-app/src/Ringo/ArgParser.hs b/ringo-app/src/Ringo/ArgParser.hs index b95d76d..883c526 100644 --- a/ringo-app/src/Ringo/ArgParser.hs +++ b/ringo-app/src/Ringo/ArgParser.hs @@ -9,8 +9,9 @@ import qualified Distribution.PackageDescription as P import qualified Distribution.CurrentPackageDescription as P import qualified Distribution.Text as DText -import Data.List (intercalate) +import Data.List (intercalate) import Options.Applicative +import System.Environment (getProgName) import Ringo.Types @@ -100,20 +101,19 @@ progArgsParser = <> action "directory" <> help "Output directory") -progName :: String -progName = $(P.getField (DText.display . P.pkgName . P.package)) - -versionParser :: Parser (a -> a) -versionParser = infoOption (progName ++ " " ++ version) +versionParser :: String -> Parser (a -> a) +versionParser progName = infoOption (progName ++ " " ++ version) (long "version" <> help "Print version information") where version = $(P.getField (DText.display . P.pkgVersion . P.package)) parseArgs :: IO ProgArgs -parseArgs = execParser $ - info (helper <*> versionParser <*> progArgsParser) - (fullDesc - <> progDesc $(P.getField P.description) - <> header (progName ++ " - " ++ $(P.getField P.synopsis)) - <> footer ("© " ++ $(P.getField P.copyright) ++ ". " ++ $(P.getField P.homepage))) +parseArgs = do + progName <- getProgName + execParser $ + info (helper <*> versionParser progName <*> progArgsParser) + (fullDesc + <> progDesc $(P.getField P.description) + <> header (progName ++ " - " ++ $(P.getField P.synopsis)) + <> footer ("© " ++ $(P.getField P.copyright) ++ ". " ++ $(P.getField P.homepage)))