int remote_control_listen = 0;
int remote_control = 0;
int exit_on_error = 1;
+int command_num = 0;
int
launch (guestfs_h *_g)
int pid = 0;
int i, r;
+ /* This counts the commands issued, starting at 1. */
+ command_num++;
+
if (echo_commands) {
printf ("%s", cmd);
for (i = 0; argv[i] != NULL; ++i)
cmd);
}
+/* This is printed when the user types in an unknown command for the
+ * first command issued. A common case is the user doing:
+ * guestfish disk.img
+ * expecting guestfish to open 'disk.img' (in fact, this tried to
+ * run a command 'disk.img').
+ */
+void
+extended_help_message (void)
+{
+ fprintf (stderr,
+ _("Did you mean to open a disk image? guestfish -a disk.img\n"
+ "For a list of commands: guestfish -h\n"
+ "For complete documentation: man guestfish\n"));
+}
+
void
free_strings (char **argv)
{
extern guestfs_h *g;
extern int quit;
extern int verbose;
+extern int command_num;
extern int issue_command (const char *cmd, char *argv[], const char *pipe);
extern void pod2text (const char *name, const char *shortdesc, const char *body);
extern void list_builtin_commands (void);
extern char **parse_string_list (const char *str);
extern int xwrite (int fd, const void *buf, size_t len);
extern char *resolve_win_path (const char *path);
+extern void extended_help_message (void);
/* in cmds.c (auto-generated) */
extern void list_commands (void);
) all_functions;
pr " {\n";
pr " fprintf (stderr, _(\"%%s: unknown command\\n\"), cmd);\n";
+ pr " if (command_num == 1)\n";
+ pr " extended_help_message ();\n";
pr " return -1;\n";
pr " }\n";
pr " return 0;\n";