module Args ( Options (..), cmdOptions, runArgsParser, ) where import Distribution.ArchHs.Internal.Prelude import Distribution.ArchHs.Options import Distribution.ArchHs.Types import Distribution.ArchHs.Utils (archHsVersion) data Options = Options { optFlags :: FlagAssignments, optCommunityDB :: CommunityDBOptions, optPackageName :: PackageName, optVersionA :: Version, optVersionB :: Version } cmdOptions :: Parser Options cmdOptions = Options <$> optFlagAssignmentParser <*> communityDBOptionsParser <*> argument optPackageNameReader (metavar "TARGET") <*> argument optVersionReader (metavar "VERSION_A") <*> argument optVersionReader (metavar "VERSION_B") runArgsParser :: IO Options runArgsParser = do (x, ()) <- simpleOptions archHsVersion "arch-hs-diff - create diff between different versions of package description" "arch-hs-diff is a CLI tool that shows the differences of package description between two versions of a package, and remind us if some required packages in community repo can't satisfy the version constraints, or they are non-existent" cmdOptions empty pure x