-
-struct cmdstruct { const char *key; int (*func)(UAContext *ua, const char *cmd); const char *help; };
-static struct cmdstruct commands[] = {
- { NT_("add"), add_cmd, _("add media to a pool")},
- { NT_("autodisplay"), autodisplay_cmd, _("autodisplay [on|off] -- console messages")},
- { NT_("automount"), automount_cmd, _("automount [on|off] -- after label")},
- { NT_("cancel"), cancel_cmd, _("cancel [<jobid=nnn> | <job=name>] -- cancel a job")},
- { NT_("create"), create_cmd, _("create DB Pool from resource")},
- { NT_("delete"), delete_cmd, _("delete [pool=<pool-name> | media volume=<volume-name>]")},
- { NT_("disable"), disable_cmd, _("disable <job=name> -- disable a job")},
- { NT_("enable"), enable_cmd, _("enable <job=name> -- enable a job")},
- { NT_("estimate"), estimate_cmd, _("performs FileSet estimate, listing gives full listing")},
- { NT_("exit"), quit_cmd, _("exit = quit")},
- { NT_("gui"), gui_cmd, _("gui [on|off] -- non-interactive gui mode")},
- { NT_("help"), help_cmd, _("print this command")},
- { NT_("list"), list_cmd, _("list [pools | jobs | jobtotals | media <pool=pool-name> | files <jobid=nn>]; from catalog")},
- { NT_("label"), label_cmd, _("label a tape")},
- { NT_("llist"), llist_cmd, _("full or long list like list command")},
- { NT_("messages"), messagescmd, _("messages")},
- { NT_("memory"), memory_cmd, _("print current memory usage")},
- { NT_("mount"), mount_cmd, _("mount <storage-name>")},
- { NT_("prune"), prunecmd, _("prune expired records from catalog")},
- { NT_("purge"), purgecmd, _("purge records from catalog")},
- { NT_("python"), python_cmd, _("python control commands")},
- { NT_("quit"), quit_cmd, _("quit")},
- { NT_("query"), querycmd, _("query catalog")},
- { NT_("restore"), restore_cmd, _("restore files")},
- { NT_("relabel"), relabel_cmd, _("relabel a tape")},
- { NT_("release"), release_cmd, _("release <storage-name>")},
- { NT_("reload"), reload_cmd, _("reload conf file")},
- { NT_("run"), run_cmd, _("run <job-name>")},
- { NT_("status"), status_cmd, _("status [storage | client]=<name>")},
- { NT_("setdebug"), setdebug_cmd, _("sets debug level")},
- { NT_("setip"), setip_cmd, _("sets new client address -- if authorized")},
- { NT_("show"), show_cmd, _("show (resource records) [jobs | pools | ... | all]")},
- { NT_("sqlquery"), sqlquerycmd, _("use SQL to query catalog")},
- { NT_("time"), time_cmd, _("print current time")},
- { NT_("trace"), trace_cmd, _("turn on/off trace to file")},
- { NT_("unmount"), unmount_cmd, _("unmount <storage-name>")},
- { NT_("umount"), unmount_cmd, _("umount <storage-name> for old-time Unix guys")},
- { NT_("update"), update_cmd, _("update Volume, Pool or slots")},
- { NT_("use"), use_cmd, _("use catalog xxx")},
- { NT_("var"), var_cmd, _("does variable expansion")},
- { NT_("version"), version_cmd, _("print Director version")},
- { NT_("wait"), wait_cmd, _("wait until no jobs are running [<jobname=name> | <jobid=nnn> | <ujobid=complete_name>]")},
- };
-#define comsize (sizeof(commands)/sizeof(struct cmdstruct))
+/* 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; /* 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 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> level=<level> 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 help on specific command"),
+ NT_("add autodisplay automount cancel create delete disable\n\tenable estimate exit gui label list llist"
+ "\n\tmessages memory mount prune purge python quit query\n\trestore relabel release reload run status"
+ "\n\tsetdebug setip show sqlquery time trace unmount\n\tumount update use var version wait"), false},
+
+ { NT_("label"), label_cmd, _("Label a tape"), NT_("storage=<storage> volume=<vol> pool=<pool> slot=<slot> barcodes"), false},
+ { NT_("list"), list_cmd, _("List objects from catalog"),
+ NT_("pools | jobs | jobtotals | volume | 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 | pool=<pool> | client=<client-name> | volume=<volume-name> "), true},
+
+ { NT_("purge"), purgecmd, _("Purge records from catalog"), NT_("files jobs volume=<vol> [action=<action> devicetype=<type> pool=<pool> allpools storage=<st> drive=<num>]"), 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> "
+ "restorejob=<job>"
+ "\n\tcomment=<text> jobid=<jobid> done select all"), false},
+
+ { NT_("relabel"), relabel_cmd, _("Relabel a tape"),
+ NT_("storage=<storage-name> oldvolume=<old-volume-name>\n\tvolume=<newvolume-name> pool=<pool>"), false},
+
+ { NT_("release"), release_cmd, _("Release storage"), NT_("storage=<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>\n\tfileset=<FileSet-name> level=<level-keyword>\n\tstorage=<storage-name>"
+ "where=<directory-prefix>\n\twhen=<universal-time-specification>\n\tcomment=<text> yes"), false},
+
+ { 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> | disabled | 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_("stats\n\tpool=<poolname>\n\tslots storage=<storage> scan"
+ "\n\tvolume=<volname> volstatus=<status> volretention=<time-def>"
+ "\n\t pool=<pool> recycle=<yes/no> slot=<number>\n\t inchanger=<yes/no>"
+ "\n\t maxvolbytes=<size> maxvolfiles=<nb> maxvoljobs=<nb>"
+ "\n\t enable=<yes/no> recyclepool=<pool> actiononpurge=<action>"),true},
+ { NT_("use"), use_cmd, _("Use catalog xxx"), NT_("catalog=<catalog>"), 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)))