clapfn
is an easy-to-use Command Line Argument Parser For Nim.
Please contact me if you have any issues using this library. This library is actively maintained and supported; I haven't made any commits lately simply because this project seems to be stable. But feel free to contact me via an issue, and I will see what I can do!
Installing is as simple as:
nimble install clapfn
clapfn
is specifically designed to be straightforward to work with.
import tables
import clapfn
var parser = ArgumentParser(programName: "mcp", fullName: "My Cool Program",
description: "A test program.", version: "0.0.0",
author: "An Author <author@domain.com>")
# See the wiki for in-depth documentation, especially the purposes
# of the various parameters.
# It is not necessary to use the argument names; they are here
# simply for explanation. *All* function arguments are required.
parser.addRequiredArgument(name="in_file", help="Input file.")
parser.addStoreArgument(shortName="-o", longName="--out", usageInput="output",
default="out.file", help="Specify the output file.")
parser.addSwitchArgument(shortName="-d", longName="--debug", default=false,
help="Enable debug printing.")
let args = parser.parse()
echo args["in_file"]
echo args["out"]
echo args["debug"]
And if you were to run mcp --help
:
My Cool Program v0.0.0
An Author <author@domain.com>
A test program.
Usage: mcp [-h] [-v] [-o output] [-d] in_file
Required arguments:
in_file Input file.
Optional arguments:
-h, --help Show this help message and exit.
-v, --version Show version number and exit.
-o=output, --out=output Specify the output file.
-d, --debug Enable debug printing.
clapfn
uses Nim's default delimiter style:
# good
-o:output
-o=output
# BAD
-o output
The values of the command line arguments are stored in a Table, and can be accessed thus:
args["in_file"]
args["out"]
args["debug"]
# etc
See example.nim
for a fully functional example.
See the wiki for documentation.
This project uses the MIT License
Raise an Issue! I'll see you there.
Project link: https://github.com/oliverdelancey/clapfn