An extension of the swift argument parser to support config files.
You should be familiar with at least the basics of the swift argument parser which this extends. Build up your command line executable as you normally would when working with the swift argument parser with one exception which is how you start the executable. Once you have your exeutable ready that is where this library comes in to enable config files.
The type that enables the use of config files is ConfigExecutable<RootCommand>
.
The RootCommand
is your executable command type that you would normally call RootCommand.main()
on.
With your ConfigExecutable
you can then build up your command and customize how the config file is interpreted or what flags are used to supply a config file as needed.
In the most simple case this is all you need:
ConfigExecutable<YourCommand>.main()
When you need to customize how the config file is interpreted and converted to the arguments your command expects you create a ConfigFileInterpreter
type and then use interpretConfig(with:)
like this:
ConfigExecutable<YourCommand>
.interpretConfig(with: YourConfigFileInterpreter.self)
.main()
When the default flags of --config [config_file_path]
and --config-dry-run
aren't what you want you can create a ConfigFlagSettings
type and use customizeFlags(with:)
to change them as needed like this:
ConfigExecutable<YourCommand>
.interpretConfig(with: YourConfigFileInterpreter.self) // If desired, this is not required
.customizeFlags(with: YourConfigFlagSettings.self)
.main()
There are example executables that are also used for testing in the Executables/
.
ConfigArgumentParser
as a dependencyAdd the following line to your package dependencies in your Package.swift
file:
.package(url: "https://github.com/bscothern/ConfigArgumentParser", .upToNextMinor(from: "0.2.0")),
Then in the targets section add this line as a dependency in your Package.swift
file:
.product(name: "ConfigArgumentParser", package: "ConfigArgumentParser"),
Breaking changes will happen on minor versions until version 1.0.0
is reached.
ConfigArgumentParser
has to function to allow normal usage of your commands and the config options you can't have any auto complete help with supplying the arguments it supports.link |
Stars: 3 |
Last commit: 2 years ago |
Upgraded to use swift-argument-parser
v1.0.1
+
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics