Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- applyDefaults :: Maybe String -> DarcsCommand -> AbsolutePath -> [String] -> [String] -> [DarcsFlag] -> ([DarcsFlag], ([String], [String]))
Documentation
:: Maybe String | maybe name of super command |
-> DarcsCommand | the darcs command |
-> AbsolutePath | the original working directory, i.e. the one from which darcs was invoked |
-> [String] | lines from user defaults |
-> [String] | lines from repo defaults |
-> [DarcsFlag] | flags from command line |
-> ([DarcsFlag], ([String], [String])) |
Apply defaults from all sources to a list of DarcsFlag
s (e.g. from the
command line), given the command (and possibly super command) name, and a
list of all options for the command.
Sources for defaults are
- the builtin (hard-coded) defaults,
- the defaults file in the user's configuration, and
- the defaults file in the current repository.
Note that the pseudo command ALL
is allowed in defaults files to specify
that an option should be the default for all commands to which it applies.
The order of precedence for conflicting options (i.e. those belonging to
same group of mutually exclusive options) is from less specific to more
specific. In other words, options from the command line override all
defaults, per-repo defaults override per-user defaults, which in turn
override the built-in defaults. Inside the options from a defaults file,
options for the given command override options for the ALL
pseudo command.
Conflicting options at the same level of precedence are not allowed.
Errors encountered during processing of command line or defaults flags are formatted and added as (separate) strings to the list of error messages that are returned together with the resulting flag list.