[pve-devel] r5109 - pve-common/trunk
svn-commits at proxmox.com
svn-commits at proxmox.com
Fri Sep 10 12:14:18 CEST 2010
Author: dietmar
Date: 2010-09-10 10:14:18 +0000 (Fri, 10 Sep 2010)
New Revision: 5109
Modified:
pve-common/trunk/CLIHandler.pm
pve-common/trunk/ChangeLog
pve-common/trunk/RESTHandler.pm
Log:
* CLIHandler.pm: new verbose option for help.
Modified: pve-common/trunk/CLIHandler.pm
===================================================================
--- pve-common/trunk/CLIHandler.pm 2010-09-10 08:05:38 UTC (rev 5108)
+++ pve-common/trunk/CLIHandler.pm 2010-09-10 10:14:18 UTC (rev 5109)
@@ -15,7 +15,7 @@
name => 'help',
path => 'help',
method => 'GET',
- description => "Get help about specified command",
+ description => "Get help about specified command.",
parameters => {
additionalProperties => 0,
properties => {
@@ -24,6 +24,11 @@
type => 'string',
optional => 1,
},
+ verbose => {
+ description => "Verbose output format.",
+ type => 'boolean',
+ optional => 1,
+ },
},
},
returns => { type => 'null' },
@@ -35,8 +40,15 @@
my $cmd = $param->{cmd};
+ my $verbose = defined($cmd) && $cmd;
+ $verbose = $param->{verbose} if defined($param->{verbose});
+
if (!$cmd) {
- print_usage_short();
+ if ($verbose) {
+ print_usage_verbose();
+ } else {
+ print_usage_short(\*STDOUT);
+ }
return undef;
}
@@ -44,25 +56,41 @@
raise_param_exc({ cmd => "no such command '$cmd'"}) if !$class;
- my $str = $class->usage_str($name, "$exename $cmd", $arg_param, $uri_param, 'full');
- print "$str\n";
+ my $str = $class->usage_str($name, "$exename $cmd", $arg_param, $uri_param, $verbose ? 'full' : 'short');
+ if ($verbose) {
+ print "$str\n";
+ } else {
+ print "USAGE: $str\n";
+ }
return undef;
}});
+sub print_usage_verbose {
+
+ die "not initialized" if !($cmddef && $exename);
+
+ print "USAGE: $exename <COMMAND> [ARGS] [OPTIONS]\n\n";
+
+ foreach my $cmd (sort keys %$cmddef) {
+ my ($class, $name, $arg_param, $uri_param) = @{$cmddef->{$cmd}};
+ my $str = $class->usage_str($name, "$exename $cmd", $arg_param, $uri_param, 'full');
+ print "$str\n\n";
+ }
+}
sub print_usage_short {
- my ($msg) = @_;
+ my ($fd, $msg) = @_;
die "not initialized" if !($cmddef && $exename);
- print STDERR "ERROR: $msg\n" if $msg;
- print STDERR "USAGE: $exename <COMMAND> [ARGS] [OPTIONS]\n";
+ print $fd "ERROR: $msg\n" if $msg;
+ print $fd "USAGE: $exename <COMMAND> [ARGS] [OPTIONS]\n";
foreach my $cmd (sort keys %$cmddef) {
my ($class, $name, $arg_param, $uri_param) = @{$cmddef->{$cmd}};
my $str = $class->usage_str($name, "$exename $cmd", $arg_param, $uri_param, 'short');
- print STDERR " $str";
+ print $fd " $str";
}
}
@@ -75,14 +103,14 @@
$cmddef->{help} = [ __PACKAGE__, 'help', ['cmd'] ];
if (!$cmd) {
- print_usage_short ("no command specified");
+ print_usage_short (\*STDERR, "no command specified");
exit (-1);
}
my ($class, $name, $arg_param, $uri_param, $outsub) = @{$cmddef->{$cmd}} if $cmddef->{$cmd};
if (!$class) {
- print_usage_short ("unknown command '$cmd'");
+ print_usage_short (\*STDERR, "unknown command '$cmd'");
exit (-1);
}
Modified: pve-common/trunk/ChangeLog
===================================================================
--- pve-common/trunk/ChangeLog 2010-09-10 08:05:38 UTC (rev 5108)
+++ pve-common/trunk/ChangeLog 2010-09-10 10:14:18 UTC (rev 5109)
@@ -1,5 +1,7 @@
2010-09-10 Proxmox Support Team <support at proxmox.com>
+ * CLIHandler.pm: new verbose option for help.
+
* Tools.pm (kvmkeymaps): moved from PVE::Utils.
* JSONSchema.pm: add a new attribute caled 'typetext' (any better
Modified: pve-common/trunk/RESTHandler.pm
===================================================================
--- pve-common/trunk/RESTHandler.pm 2010-09-10 08:05:38 UTC (rev 5108)
+++ pve-common/trunk/RESTHandler.pm 2010-09-10 10:14:18 UTC (rev 5109)
@@ -328,7 +328,7 @@
}
}
- $out .= "usage: " if $format ne 'short';
+ $out .= "USAGE: " if $format ne 'short';
$out .= "$prefix $args";
@@ -336,13 +336,15 @@
return $out if $format eq 'short';
+ if ($info->{description} && $format eq 'full') {
+ my $desc = Text::Wrap::wrap(' ', ' ', ($info->{description}));
+ $out .= "\n$desc\n\n";
+ }
+
$out .= $argdescr if $argdescr;
$out .= $opts if $opts;
- if ($info->{description} && $format eq 'full') {
- $out .= "\nDescription: $info->{description}\n";
- }
return $out;
}
More information about the pve-devel
mailing list