Yet another optparse
Kirk McDonald
kirklin.mcdonald at gmail.com
Tue Jan 9 19:59:48 PST 2007
Knowing that D already has (by my count) three command-line argument
parsers, I have gone and written my own, anyway. As with at least one
other of the parsers that I've seen, it is (at least loosely) based on
Python's optparse library. You can find it here:
http://dsource.org/projects/pyd/browser/misc/optparse.d
An example of its use can be found here:
http://dsource.org/projects/pyd/browser/misc/opttest.d
Or right here:
module test;
import optparse;
void main(char[][] args) {
auto parser = new OptionParser;
// Stores the option's argument.
parser.add_option("-f", "--file");
// Appends the option's argument to a list.
parser.add_option(["-I", "--import"], Action.Append);
auto options = parser.parse_args(args);
char[] file = options["file"];
char[][] imports = options.list("import");
writefln("file: ", file);
writefln("imports: ", imports);
// Any arguments that don't start with '-' are stored
// in the args array.
writefln("leftovers: ", options.args);
}
$ ./test -Isomedir --import otherdir --file=somefile anotherfile
file: somefile
imports: [somedir,otherdir]
leftovers: [anotherfile]
Optparse has a number of other features, including support for callbacks
and integer arguments. The opttest.d file above shows off some of these
features.
It's released under the MIT license, so feel free to use it for whatever.
--
Kirk McDonald
Pyd: Wrapping Python with D
http://pyd.dsource.org
More information about the Digitalmars-d
mailing list