diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2016-12-19 18:30:59 -0200 |
|---|---|---|
| committer | Renato Westphal <renato@opensourcerouting.org> | 2017-01-03 22:03:28 -0200 |
| commit | bdcf7abf820d36089feb3000d630227df744858e (patch) | |
| tree | 588aef74e62583ca92a9545a8d4925557a5b5dfa | |
| parent | 6bfae35e5c7b020a7ffca41dbe0eefc77ff003c2 (diff) | |
tools: teach xml2cli.pl the "[]" notation for optional arguments
Requested by Daniel Walton.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
| -rwxr-xr-x | tools/xml2cli.pl | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/xml2cli.pl b/tools/xml2cli.pl index 1b45e7f726..e0980421bd 100755 --- a/tools/xml2cli.pl +++ b/tools/xml2cli.pl @@ -141,6 +141,8 @@ sub generate_arguments { # argument is the name of the node if ($node{'input'} or $node{'type'} eq "select") { $arg_value = "argv[" . $argc . "]->arg"; + } elsif ($node{'optional'}) { + $arg_value = "(argc > " . $argc . " ? argv[" . $argc. "]->arg : NULL)"; } else { $arg_value = '"' . $node{'name'} . '"'; } @@ -196,7 +198,11 @@ sub generate_code { $helpstr .= $::options{$options_name}{'help'}; } else { $funcname .= $node{'name'} . " "; - $cmdstr .= $node{'name'} . " "; + if ($node{'optional'}) { + $cmdstr .= "[" . $node{'name'} . "] "; + } else { + $cmdstr .= $node{'name'} . " "; + } $helpstr .= "\n \"" . $node{'help'} . "\\n\""; } @@ -279,6 +285,7 @@ sub parse_tree { $node{'help'} = $xml_node->findvalue('./@help'); $node{'function'} = $xml_node->findvalue('./@function'); $node{'ifdef'} = $xml_node->findvalue('./@ifdef'); + $node{'optional'} = $xml_node->findvalue('./@optional'); # push node to stack push (@nodes, \%node); |
