a list of string arguments that will be processed
The command name that was found (may be null).
test extractCommandNameArgument usage
{ string[] args; /// It returns an empty string on when there are no args assert(commandNameArgument(args) is null); assert(!args.length); } { string[] args = [ "test" ]; /// It returns the first argument when it does not start with `-` assert(commandNameArgument(args) == "test"); /// There is nothing to extract when the arguments only contain the `test` cmd assert(!args.length); } { string[] args = [ "-a", "-b" ]; /// It extracts two arguments when they are not a command assert(commandNameArgument(args) is null); assert(args == ["-a", "-b"]); } { string[] args = [ "-test" ]; /// It returns the an empty string when it starts with `-` assert(commandNameArgument(args) is null); assert(args.length == 1); } { string[] args = [ "foo:bar" ]; // Sub package names are ignored as command names assert(commandNameArgument(args) is null); assert(args.length == 1); args[0] = ":foo"; assert(commandNameArgument(args) is null); assert(args.length == 1); }
Extract the command name from the argument list