]> git.sur5r.net Git - bacula/bacula/commitdiff
Cleanup help usage
authorEric Bollengier <eric@eb.homelinux.org>
Fri, 30 Oct 2009 13:40:43 +0000 (14:40 +0100)
committerEric Bollengier <eric@eb.homelinux.org>
Sun, 1 Nov 2009 22:33:58 +0000 (23:33 +0100)
bacula/src/dird/ua_cmds.c

index b24b2adacba969a7f4721294fd982e972c6dffee..67a73088adb808110169ae842c1a282f7fc2c6a4 100644 (file)
@@ -110,70 +110,86 @@ int quit_cmd(UAContext *ua, const char *cmd);
 
 /* not all in alphabetical order.  New commands are added after existing commands with similar letters
    to prevent breakage of existing user scripts.  */
-struct cmdstruct { const char *key; int (*func)(UAContext *ua, const char *cmd); const char *help; const bool use_in_rs;};
+struct cmdstruct { 
+   const char *key;                             /* command */
+   int (*func)(UAContext *ua, const char *cmd); /* handler */
+   const char *help;            /* main purpose */
+   const char *usage;           /* all arguments to build usage */
+   const bool use_in_rs;        /* Can use it in Console RunScript */
+};
 static struct cmdstruct commands[] = {                                      /* Can use it in Console RunScript*/
- { NT_("add"),        add_cmd,         _("add [pool=<pool-name> storage=<storage> jobid=<JobId>] -- "
-       "\n               add media to a pool"),  false},
- { NT_("autodisplay"), autodisplay_cmd, _("autodisplay [on|off] -- console messages"),false},
- { NT_("automount"),   automount_cmd,  _("automount [on|off] -- after label"),        false},
- { NT_("cancel"),     cancel_cmd,    _("cancel [jobid=<number> job=<job-name> ujobid=<unique-jobid>] -- "
-       "\n               cancel a job"), false},
- { NT_("create"),     create_cmd,    _("create [pool=<pool-name>] -- create DB Pool from resource"),               false},
- { NT_("delete"),     delete_cmd,    _("delete [volume=<vol-name> pool=<pool-name> job jobid=<id>]"), true},
- { NT_("disable"),    disable_cmd,   _("disable <job=name> -- disable a job"),        true},
- { NT_("enable"),     enable_cmd,    _("enable <job=name> -- enable a job"),          true},
- { NT_("estimate"),   estimate_cmd,  _("performs FileSet estimate, listing gives full listing"
-       "\n               you can make it more accurate with accurate=yes/no"
-       "\n               estimate fileset=<fs> client=<cli> accurate=<yes/no> job=<job> listing"), true},
- { NT_("exit"),       quit_cmd,      _("exit = quit"),                                false},
- { NT_("gui"),        gui_cmd,       _("gui [on|off] -- non-interactive gui mode"),   false},
- { NT_("help"),       help_cmd,      _("print this command"),                         false},
- { NT_("label"),      label_cmd,     _("label a tape -- "
-       "\n               label storage=<storage> volume=<vol> pool=<pool>"), false},
- { NT_("list"),       list_cmd,      _("list [pools | jobs | jobtotals | media <pool=pool-name> | "
-       "\n               files <jobid=nn> | copies <jobid=nn>]; from catalog"), true},
- { NT_("llist"),      llist_cmd,     _("full or long list like list command"),        true},
- { NT_("messages"),   messagescmd,   _("messages"),                                   false},
- { NT_("memory"),     memory_cmd,    _("print current memory usage"),                 true},
- { NT_("mount"),      mount_cmd,     _("mount storage=<storage-name> [ slot=<num> ] [ drive=<num> ] "
-       "\n               or mount [ jobid=<id> | job=<job-name> ]"), false},
- { NT_("prune"),      prunecmd,      _("prune files|jobs|volume client=<client-name> volume=<volume-name> "
-       "\n               prune expired records from catalog"), true},
- { NT_("purge"),      purgecmd,      _("purge records from catalog - purge [volume=<vol>]"),  true},
- { NT_("python"),     python_cmd,    _("python control commands"),                    false},
- { NT_("quit"),       quit_cmd,      _("quit"),                                       false},
- { NT_("query"),      querycmd,      _("query catalog"),                              false},
- { NT_("restore"),    restore_cmd,   _("restore files - "
-       "\n              restore [where=/path client=<client> storage=<storage> bootstrap=<file>"
-       "\n                       jobid=<jobid> done select all]"), false},
- { NT_("relabel"),    relabel_cmd,   _("relabel storage=<storage-name> oldvolume=<old-volume-name> "
-       "\n               volume=<newvolume-name> -- relabel a tape"), false},
- { NT_("release"),    release_cmd,   _("release <storage-name>"),                     false},
- { NT_("reload"),     reload_cmd,    _("reload conf file"),                           true},
- { NT_("run"),        run_cmd,       _("run job=<job-name> client=<client-name> fileset=<FileSet-name> "
-       "\n               level=<level-keyword> storage=<storage-name> where=<directory-prefix> "
-       "\n               when=<universal-time-specification> yes"), false}, /* need to be check */
- { NT_("status"),     status_cmd,    _("status [all | dir=<dir-name> | director | client=<client-name> |"
-       "\n               storage=<storage-name> | days=nnn]"), true},
- { NT_("setdebug"),   setdebug_cmd,  _("setdebug level=nn [trace=0/1 client=<client-name> |"
-       "\n               dir | director | storage=<storage-name> | all]  -- sets debug level"), true},
- { NT_("setip"),      setip_cmd,     _("sets new client address -- if authorized"),   false},
- { NT_("show"),       show_cmd,      _("show (resource records) [job=xxx |  pool=yyy | fileset=aaa "
-       "\n              schedule=sss | client=zzz | fileset... | all]"), true},
- { NT_("sqlquery"),   sqlquerycmd,   _("use SQL to query catalog"),                   false},
- { NT_("time"),       time_cmd,      _("print current time"),                         true},
- { NT_("trace"),      trace_cmd,     _("turn on/off trace to file"),                  true},
- { NT_("unmount"),    unmount_cmd,   _("unmount storage=<storage-name> [ drive=<num> ] "
-       "\n               or unmount [ jobid=<id> | job=<job-name> ]"), false},
- { NT_("umount"),     unmount_cmd,   _("umount - for old-time Unix guys, see unmount"),false},
- { NT_("update"),     update_cmd,    _("update [pool=<poolname> | slots | stats | "
-       "\n                     volume=<volname> volstatus=<status> volretention=<time-def>"
-       "\n                          pool=<pool> recycle=<yes/no> slot=<number> inchanger=<yes/no>]"),true},
- { NT_("use"),        use_cmd,       _("use <database-name> -- catalog xxx"),          false},
- { NT_("var"),        var_cmd,       _("does variable expansion"),                    false},
- { NT_("version"),    version_cmd,   _("print Director version"),                     true},
- { NT_("wait"),       wait_cmd,      _("wait [<jobname=name> | <jobid=nnn> | <ujobid=complete_name>] -- "
-       "\n               wait until no jobs are running"), false}
+ { NT_("add"),        add_cmd,     _("Add media to a pool"),   NT_("pool=<pool-name> storage=<storage> jobid=<JobId>"),  false},
+ { NT_("autodisplay"), autodisplay_cmd,_("Autodisplay console messages"), NT_("on | off"),    false},
+ { NT_("automount"),   automount_cmd,  _("Automount after label"),        NT_("on | off"),    false},
+ { NT_("cancel"),     cancel_cmd,    _("Cancel a job"), NT_("jobid=<number> job=<job-name> ujobid=<unique-jobid>"), false},
+ { NT_("create"),     create_cmd,    _("Create DB Pool from resource"), NT_("pool=<pool-name>"),                    false},
+ { NT_("delete"),     delete_cmd,    _("Delete volume, pool or job"), NT_("volume=<vol-name> pool=<pool-name> jobid=<id>"), true},
+ { NT_("disable"),    disable_cmd,   _("Disable a job"), NT_("job=<name>"),        true},
+ { NT_("enable"),     enable_cmd,    _("Enable a job"), NT_("job=<name>"),          true},
+ { NT_("estimate"),   estimate_cmd,  _("Performs FileSet estimate, listing gives full listing"), 
+   NT_("fileset=<fs> client=<cli> accurate=<yes/no> job=<job> listing"), true},
+
+ { NT_("exit"),       quit_cmd,      _("Terminate Bconsole session"), NT_(""),         false},
+ { NT_("gui"),        gui_cmd,       _("Non-interactive gui mode"),   NT_("on | off"), false},
+ { NT_("help"),       help_cmd,      _("Print this command"),         NT_(""),         false},
+ { NT_("label"),      label_cmd,     _("Label a tape"), NT_("storage=<storage> volume=<vol> pool=<pool>"), false},
+ { NT_("list"),       list_cmd,      _("List objects from catalog"), 
+   NT_("pools | jobs | jobtotals | media <pool=pool-name> | files jobid=<nn> | copies jobid=<nn>"), true},
+
+ { NT_("llist"),      llist_cmd,     _("Full or long list like list command"),
+   NT_("pools | jobs | jobtotals | media <pool=pool-name> | files jobid=<nn> | copies jobid=<nn>"), true},
+
+ { NT_("messages"),   messagescmd,   _("Display pending messages"),   NT_(""),    false},
+ { NT_("memory"),     memory_cmd,    _("Print current memory usage"), NT_(""),    true},
+ { NT_("mount"),      mount_cmd,     _("Mount storage"), 
+   NT_("storage=<storage-name> slot=<num> drive=<num> [ jobid=<id> | job=<job-name> ]"), false},
+
+ { NT_("prune"),      prunecmd,      _("Prune expired records from catalog"), 
+   NT_("files | jobs | client=<client-name> | volume=<volume-name> "), true},
+
+ { NT_("purge"),      purgecmd,      _("Purge records from catalog"), NT_("volume=<vol>"),  true},
+ { NT_("python"),     python_cmd,    _("Python control commands"),    NT_(""),              false},
+ { NT_("quit"),       quit_cmd,      _("Terminate Bconsole session"), NT_(""),              false},
+ { NT_("query"),      querycmd,      _("Query catalog"),              NT_(""),              false},
+ { NT_("restore"),    restore_cmd,   _("Restore files"), 
+   NT_("where=/path client=<client> storage=<storage> bootstrap=<file> jobid=<jobid> done select all"), false},
+
+ { NT_("relabel"),    relabel_cmd,   _("Relabel a tape"), 
+   NT_("storage=<storage-name> oldvolume=<old-volume-name>  volume=<newvolume-name>"), false},
+
+ { NT_("release"),    release_cmd,   _("Release storage"),  NT_("storage-name"),      false},
+ { NT_("reload"),     reload_cmd,    _("Reload conf file"), NT_(""),                  true},
+ { NT_("run"),        run_cmd,       _("Run a job"), 
+   NT_("job=<job-name> client=<client-name> fileset=<FileSet-name> level=<level-keyword> storage=<storage-name> where=<directory-prefix> "
+       "when=<universal-time-specification> yes"), false}, /* need to be check */
+
+ { NT_("status"),     status_cmd,    _("Report status"), 
+   NT_("all | dir=<dir-name> | director | client=<client-name> | storage=<storage-name> slots | days=nnn"), true},
+
+ { NT_("setdebug"),   setdebug_cmd,  _("Sets debug level"), 
+   NT_("level=nn trace=0/1 client=<client-name> | dir | storage=<storage-name> | all"), true},
+
+ { NT_("setip"),      setip_cmd,     _("Sets new client address -- if authorized"), NT_(""),   false},
+ { NT_("show"),       show_cmd,      _("Show resource records"), 
+   NT_("job=<xxx> |  pool=<yyy> | fileset=<aaa> schedule=<sss> | client=<zzz> | all"), true},
+
+ { NT_("sqlquery"),   sqlquerycmd,   _("Use SQL to query catalog"), NT_(""),          false},
+ { NT_("time"),       time_cmd,      _("Print current time"),       NT_(""),          true},
+ { NT_("trace"),      trace_cmd,     _("Turn on/off trace to file"), NT_("on | off"), true},
+ { NT_("unmount"),    unmount_cmd,   _("Unmount storage"), 
+   NT_("storage=<storage-name> [ drive=<num> ] | jobid=<id> | job=<job-name>"), false},
+
+ { NT_("umount"),     unmount_cmd,   _("Umount - for old-time Unix guys, see unmount"), 
+   NT_("storage=<storage-name> [ drive=<num> ] | jobid=<id> | job=<job-name>"), false},
+
+ { NT_("update"),     update_cmd,    _("Update volume, pool or stats"), 
+   NT_("pool=<poolname> | slots | stats | volume=<volname> volstatus=<status> volretention=<time-def> "
+       "pool=<pool> recycle=<yes/no> slot=<number> inchanger=<yes/no>"),true},
+ { NT_("use"),        use_cmd,       _("Use catalog xxx"), NT_(""),     false},
+ { NT_("var"),        var_cmd,       _("Does variable expansion"), NT_(""),  false},
+ { NT_("version"),    version_cmd,   _("Print Director version"),  NT_(""),  true},
+ { NT_("wait"),       wait_cmd,      _("Wait until no jobs are running"), 
+   NT_("<jobname=name> | <jobid=nnn> | <ujobid=complete_name>"), false}
 };
 
 #define comsize ((int)(sizeof(commands)/sizeof(struct cmdstruct)))
@@ -1857,9 +1873,19 @@ static int help_cmd(UAContext *ua, const char *cmd)
 {
    int i;
 
-   ua->send_msg(_("  Command    Description\n  =======    ===========\n"));
+   ua->send_msg(_("  Command       Description\n  =======       ===========\n"));
    for (i=0; i<comsize; i++) {
-      ua->send_msg(_("  %-10s %s\n"), _(commands[i].key), _(commands[i].help));
+      if (ua->argc == 2) {
+         if (!strcasecmp(ua->argk[1], commands[i].key)) {
+            ua->send_msg(_("  %-13s %s\n  %s\n"), commands[i].key, commands[i].help, commands[i].usage);
+            break;
+         }
+      } else {
+         ua->send_msg(_("  %-13s %s\n"), commands[i].key, commands[i].help);
+      }
+   }
+   if (i == comsize && ua->argc == 2) {
+      ua->send_msg(_("\nCan't find %s command.\n\n"), ua->argk[1]);
    }
    ua->send_msg(_("\nWhen at a prompt, entering a period cancels the command.\n\n"));
    return 1;