2018-11-21 13:25:53 +00:00
|
|
|
type
|
|
|
|
ConfigurationError* = object of CatchableError
|
|
|
|
|
2019-03-18 02:01:07 +00:00
|
|
|
TypedInputFile*[ContentType = Unspecified,
|
|
|
|
Format = Unspecified,
|
|
|
|
defaultExt: static string] = distinct string
|
|
|
|
|
|
|
|
# InputFile* = TypedInputFile[Unspecified, Unspecified, ""]
|
|
|
|
# TODO temporary work-around, see parseCmdArg
|
|
|
|
InputFile* = distinct string
|
|
|
|
|
|
|
|
InputDir* = distinct string
|
|
|
|
OutPath* = distinct string
|
|
|
|
OutDir* = distinct string
|
|
|
|
OutFile* = distinct string
|
|
|
|
|
|
|
|
Unspecified* = object
|
|
|
|
Txt* = object
|
|
|
|
|
|
|
|
template `/`*(dir: InputDir|OutDir, path: string): auto =
|
|
|
|
string(dir) / path
|
|
|
|
|
2018-11-21 13:25:53 +00:00
|
|
|
template desc*(v: string) {.pragma.}
|
2018-12-19 10:52:32 +00:00
|
|
|
template longform*(v: string) {.pragma.}
|
|
|
|
template shortform*(v: string) {.pragma.}
|
2018-11-21 13:25:53 +00:00
|
|
|
template defaultValue*(v: untyped) {.pragma.}
|
2018-12-19 10:52:32 +00:00
|
|
|
template required* {.pragma.}
|
|
|
|
template command* {.pragma.}
|
|
|
|
template argument* {.pragma.}
|
2018-11-21 13:25:53 +00:00
|
|
|
|
2019-08-23 15:52:32 +00:00
|
|
|
template implicitlySelectable* {.pragma.}
|
|
|
|
## This can be applied to a case object discriminator
|
|
|
|
## to allow the value of the discriminator to be determined
|
|
|
|
## implicitly when the user specifies any of the sub-options
|
|
|
|
## that depend on the disciminator value.
|
|
|
|
|