arch-hs-0.3.0.0: Distribute hackage packages to archlinux
Copyright(c) 2020 berberman
LicenseMIT
Maintainerberberman <1793913507@qq.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Distribution.ArchHs.OptionReader

Description

This module defines input patterns used in executables' cli. Options.Applicative is re-exported.

Synopsis

Documentation

optFlagReader :: ReadM (Map PackageName FlagAssignment) Source #

Read a set of package name with flag assignments.

>>> f ""
Right (fromList [])
>>> f "package_name:flag_name:true"
Right (fromList [(PackageName "package_name",fromList [(FlagName "flag_name",(1,True))])])
>>> f "package_name:flag_name_1:true,package_name:flag_name_2:false"
Right (fromList [(PackageName "package_name",fromList [(FlagName "flag_name_1",(1,True)),(FlagName "flag_name_2",(1,False))])])
>>> f "package_name_1:flag_name_1:false,package_name_2:flag_name_2:true"
Right (fromList [(PackageName "package_name_1",fromList [(FlagName "flag_name_1",(1,False))]),(PackageName "package_name_2",fromList [(FlagName "flag_name_2",(1,True))])])
>>> f "zzz"
Left "1:4:\n  |\n1 | zzz\n  |    ^\nunexpected end of input\nexpecting ':'\n"

optSkippedReader :: ReadM [String] Source #

Read skipped components. This never fails, i.e. the return value will be Right. >>> f "" Right [""] >>> f "component_1,component_2" Right ["component_1","component_2"]

optExtraCabalReader :: ReadM [FilePath] Source #

Read extra cabal files.

>>> f ""
Left "Unexpected file name: "
>>> f "a.cabal"
Right ["a.cabal"]
>>> f "a.cabal,b.cabal"
Right ["a.cabal","b.cabal"]
>>> f "a.what,b.cabal"
Left "Unexpected file name: a.what"

optVersionReader :: ReadM Version Source #

Read a Version This function calls simpleParsec.

optPackageNameReader :: ReadM PackageName Source #

Read a PackageName This function never fails, because it just wraps the input string with mkPackageName.