static int outputcmd(FILE *input, BSOCK *UA_sock);
static int teecmd(FILE *input, BSOCK *UA_sock);
static int quitcmd(FILE *input, BSOCK *UA_sock);
+static int helpcmd(FILE *input, BSOCK *UA_sock);
static int echocmd(FILE *input, BSOCK *UA_sock);
static int timecmd(FILE *input, BSOCK *UA_sock);
static int sleepcmd(FILE *input, BSOCK *UA_sock);
{ N_("exec"), execcmd, _("execute an external command")},
{ N_("exit"), quitcmd, _("exit = quit")},
{ N_("zed_keys"), zed_keyscmd, _("zed_keys = use zed keys instead of bash keys")},
+ { N_("help"), helpcmd, _("help listing")},
#ifdef HAVE_READLINE
{ N_("separator"), eolcmd, _("set command separator")},
#endif
};
-#define comsize (sizeof(commands)/sizeof(struct cmdstruct))
+#define comsize ((int)(sizeof(commands)/sizeof(struct cmdstruct)))
static int do_a_command(FILE *input, BSOCK *UA_sock)
{
static int echocmd(FILE *input, BSOCK *UA_sock)
{
for (int i=1; i < argc; i++) {
- senditf("%s", argk[i]);
- sendit(" ");
+ senditf("%s ", argk[i]);
}
sendit("\n");
return 1;
return 0;
}
+static int helpcmd(FILE *input, BSOCK *UA_sock)
+{
+ int i;
+ for (i=0; i<comsize; i++) {
+ senditf(" %-10s %s\n", commands[i].key, commands[i].help);
+ }
+ return 1;
+}
+
+
static int sleepcmd(FILE *input, BSOCK *UA_sock)
{
if (argc > 1) {
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;};
static struct cmdstruct commands[] = { /* Can use it in Console RunScript*/
- { NT_("add"), add_cmd, _("add [pool=<pool-name> storage=<storage> jobid=<JobId>] -- add media to a pool"), false},
+ { 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>] -- cancel a job"), 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_("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"), false},
- { NT_("list"), list_cmd, _("list [pools | jobs | jobtotals | media <pool=pool-name> | files <jobid=nn> | copies <jobid=nn>]; from catalog"), true},
+ { 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> ] or mount [ jobid=<id> | job=<job-name> ]"), false},
- { NT_("prune"), prunecmd, _("prune files|jobs|volume client=<client-name> volume=<volume-name> prune expired records from catalog"), 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"), 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"), false},
- { NT_("relabel"), relabel_cmd, _("relabel storage=<storage-name> oldvolume=<old-volume-name> volume=<newvolume-name> -- relabel a tape"), 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> level=<level-keyword> storage=<storage-name> where=<directory-prefix> when=<universal-time-specification> yes"), false}, /* need to be check */
- { NT_("status"), status_cmd, _("status [all | dir=<dir-name> | director | client=<client-name> | storage=<storage-name> | days=nnn]"), true},
- { NT_("setdebug"), setdebug_cmd, _("setdebug level=nn [trace=0/1 client=<client-name> | dir | director | storage=<storage-name> | all] -- sets debug level"), 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) [jobs | pools | ... | 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> ] or unmount [ jobid=<id> | job=<job-name> ]"), false},
+ { 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 Volume, Pool or slots"), 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>] -- wait until no jobs are running"), false},
- };
-#define comsize (sizeof(commands)/sizeof(struct cmdstruct))
+ { NT_("wait"), wait_cmd, _("wait [<jobname=name> | <jobid=nnn> | <ujobid=complete_name>] -- "
+ "\n wait until no jobs are running"), false}
+};
+
+#define comsize ((int)(sizeof(commands)/sizeof(struct cmdstruct)))
/*
* Execute a command from the UA
*/
bool do_a_command(UAContext *ua)
{
- unsigned int i;
+ int i;
int len;
bool ok = false;
bool found = false;
static int help_cmd(UAContext *ua, const char *cmd)
{
- unsigned int i;
+ int i;
ua->send_msg(_(" Command Description\n ======= ===========\n"));
for (i=0; i<comsize; i++) {
int qhelp_cmd(UAContext *ua, const char *cmd)
{
- unsigned int i;
+ int i;
for (i=0; i<comsize; i++) {
ua->send_msg("%s %s\n", commands[i].key, _(commands[i].help));