A hook for running a second command from within a command without having to use the commandline argument parsing.
primary_commands are not passed in,
the values from the previous command run are used.
The regex to use for matching property key/value separators.
The regex to use for matching the id argument (luid / uuid).
Sets up this context object's arguments and key/value pairs from an array that looks like an @ARGV.
This routine pulls arguments (specified by --key=value or --key value or -k value) and properties (specified by --props key=value or -- key=value) as passed on the command line out of ARGV (or something else emulating ARGV) and sticks them in "args" or "props" and "prop_set" as necessary. Argument keys have leading "--" or "-" stripped.
If a key is not given a value on the command line, its value is set to undef.
More complicated separators such as =~ (for regexes) are also handled (see "cmp_regex" for details).
When working with individual records, it is often the case that we'll be expecting a --type argument and then a mess of other key-value pairs.
This routine figures out and sets
uuid from the arguments given on the command-line,
Being unable to figure out a uuid is fatal.