From 19afaaa4fd0ec5266f0fe0fbaf58eae7afce58c8 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Fri, 30 Oct 2009 14:40:43 +0100 Subject: [PATCH] Cleanup help usage --- bacula/src/dird/ua_cmds.c | 156 ++++++++++++++++++++++---------------- 1 file changed, 91 insertions(+), 65 deletions(-) diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index b24b2adacb..67a73088ad 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -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= storage= 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= job= ujobid=] -- " - "\n cancel a job"), false}, - { NT_("create"), create_cmd, _("create [pool=] -- create DB Pool from resource"), false}, - { NT_("delete"), delete_cmd, _("delete [volume= pool= job jobid=]"), true}, - { NT_("disable"), disable_cmd, _("disable -- disable a job"), true}, - { NT_("enable"), enable_cmd, _("enable -- 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= client= accurate= 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= volume= pool="), false}, - { NT_("list"), list_cmd, _("list [pools | jobs | jobtotals | media | " - "\n files | copies ]; 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= [ slot= ] [ drive= ] " - "\n or mount [ jobid= | job= ]"), false}, - { NT_("prune"), prunecmd, _("prune files|jobs|volume client= volume= " - "\n prune expired records from catalog"), true}, - { NT_("purge"), purgecmd, _("purge records from catalog - purge [volume=]"), 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= storage= bootstrap=" - "\n jobid= done select all]"), false}, - { NT_("relabel"), relabel_cmd, _("relabel storage= oldvolume= " - "\n volume= -- relabel a tape"), false}, - { NT_("release"), release_cmd, _("release "), false}, - { NT_("reload"), reload_cmd, _("reload conf file"), true}, - { NT_("run"), run_cmd, _("run job= client= fileset= " - "\n level= storage= where= " - "\n when= yes"), false}, /* need to be check */ - { NT_("status"), status_cmd, _("status [all | dir= | director | client= |" - "\n storage= | days=nnn]"), true}, - { NT_("setdebug"), setdebug_cmd, _("setdebug level=nn [trace=0/1 client= |" - "\n dir | director | storage= | 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= [ drive= ] " - "\n or unmount [ jobid= | job= ]"), false}, - { NT_("umount"), unmount_cmd, _("umount - for old-time Unix guys, see unmount"),false}, - { NT_("update"), update_cmd, _("update [pool= | slots | stats | " - "\n volume= volstatus= volretention=" - "\n pool= recycle= slot= inchanger=]"),true}, - { NT_("use"), use_cmd, _("use -- catalog xxx"), false}, - { NT_("var"), var_cmd, _("does variable expansion"), false}, - { NT_("version"), version_cmd, _("print Director version"), true}, - { NT_("wait"), wait_cmd, _("wait [ | | ] -- " - "\n wait until no jobs are running"), false} + { NT_("add"), add_cmd, _("Add media to a pool"), NT_("pool= storage= 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= job= ujobid="), false}, + { NT_("create"), create_cmd, _("Create DB Pool from resource"), NT_("pool="), false}, + { NT_("delete"), delete_cmd, _("Delete volume, pool or job"), NT_("volume= pool= jobid="), true}, + { NT_("disable"), disable_cmd, _("Disable a job"), NT_("job="), true}, + { NT_("enable"), enable_cmd, _("Enable a job"), NT_("job="), true}, + { NT_("estimate"), estimate_cmd, _("Performs FileSet estimate, listing gives full listing"), + NT_("fileset= client= accurate= 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= volume= pool="), false}, + { NT_("list"), list_cmd, _("List objects from catalog"), + NT_("pools | jobs | jobtotals | media | files jobid= | copies jobid="), true}, + + { NT_("llist"), llist_cmd, _("Full or long list like list command"), + NT_("pools | jobs | jobtotals | media | files jobid= | copies jobid="), 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= slot= drive= [ jobid= | job= ]"), false}, + + { NT_("prune"), prunecmd, _("Prune expired records from catalog"), + NT_("files | jobs | client= | volume= "), true}, + + { NT_("purge"), purgecmd, _("Purge records from catalog"), NT_("volume="), 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= storage= bootstrap= jobid= done select all"), false}, + + { NT_("relabel"), relabel_cmd, _("Relabel a tape"), + NT_("storage= oldvolume= volume="), 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= client= fileset= level= storage= where= " + "when= yes"), false}, /* need to be check */ + + { NT_("status"), status_cmd, _("Report status"), + NT_("all | dir= | director | client= | storage= slots | days=nnn"), true}, + + { NT_("setdebug"), setdebug_cmd, _("Sets debug level"), + NT_("level=nn trace=0/1 client= | dir | storage= | all"), true}, + + { NT_("setip"), setip_cmd, _("Sets new client address -- if authorized"), NT_(""), false}, + { NT_("show"), show_cmd, _("Show resource records"), + NT_("job= | pool= | fileset= schedule= | client= | 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= [ drive= ] | jobid= | job="), false}, + + { NT_("umount"), unmount_cmd, _("Umount - for old-time Unix guys, see unmount"), + NT_("storage= [ drive= ] | jobid= | job="), false}, + + { NT_("update"), update_cmd, _("Update volume, pool or stats"), + NT_("pool= | slots | stats | volume= volstatus= volretention= " + "pool= recycle= slot= inchanger="),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_(" | | "), 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; isend_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; -- 2.39.5