On Wednesday, 29 April 2015 at 22:02:29 UTC, novice2 wrote:
Hello.

Help me please to understand, how to show usage help to user, who enter wrong options?
For example, user not provided required filename.
I want to show error message, and program usage help text.
But likely getopt don't provide help text until valid options will be parsed.

Reduced code:
///////////////
import std.stdio: writefln;
import std.getopt;

void main (string[] args)
{
  string fname;
  GetoptResult helpInfo;

  try
  {
    helpInfo = getopt(
      args,
std.getopt.config.required, "file|f", "File name", &fname);

    writefln("Options parsed: fname=%s", fname);
  }
  catch(Exception e)
  {
    writefln("\nERROR: %s", e.msg);
    defaultGetoptPrinter("Program usage:", helpInfo.options);
  }
}
///////////////

Output:
ERROR: Required option file|fwas not supplied
Program usage:

Also, I suggest you look at docopt:
http://code.dlang.org/packages/docopt

It makes the whole parsing of CLI arguments very nice and easy.

Reply via email to