diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-01-13 14:48:16 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-01-13 14:48:16 -0500 |
| commit | 9aa7f43f7e7310c285f39a38ff36e1546c00058c (patch) | |
| tree | cdcfdc0f188027cd77937c790895fc5926bb85dd /tools/xml2cli.pl | |
| parent | 386ea4d526de953f3648dfa286f77e5b0a8eef12 (diff) | |
| parent | b6f1faf04596242329d8ecd95b732f1d396e7823 (diff) | |
Merge branch 'master' into cleanup
Diffstat (limited to 'tools/xml2cli.pl')
| -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); |
