#include <fcntl.h>
#include <getopt.h>
#include <signal.h>
-#include <assert.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <locale.h>
fprintf (stdout,
_("%s: guest filesystem shell\n"
"%s lets you edit virtual machine filesystems\n"
- "Copyright (C) 2009 Red Hat Inc.\n"
+ "Copyright (C) 2009-2010 Red Hat Inc.\n"
"Usage:\n"
" %s [--options] cmd [: cmd : cmd ...]\n"
- " %s -i libvirt-domain\n"
- " %s -i disk-image(s)\n"
+ " %s [--ro] -i -a disk-image\n"
+ " %s [--ro] -i -d libvirt-domain\n"
"or for interactive use:\n"
" %s\n"
"or from a shell script:\n"
" -v|--verbose Verbose messages\n"
" -x Echo each command before executing it\n"
" -V|--version Display version and exit\n"
- "For more information, see the manpage %s(1).\n"),
+ "For more information, see the manpage %s(1).\n"),
program_name, program_name, program_name,
program_name, program_name, program_name,
program_name, program_name, program_name);
*/
const char *options = read_only ? "ro" : "";
r = guestfs_mount_options (g, options, mp->device, mp->mountpoint);
- if (r == -1)
+ if (r == -1) {
+ /* Display possible mountpoints before exiting. */
+ char **fses = guestfs_list_filesystems (g);
+ if (fses == NULL || fses[0] == NULL)
+ goto out;
+ fprintf (stderr,
+ _("guestfish: '%s' could not be mounted. Did you mean one of these?\n"),
+ mp->device);
+ size_t i;
+ for (i = 0; fses[i] != NULL; i += 2)
+ fprintf (stderr, "\t%s (%s)\n", fses[i], fses[i+1]);
+
+ out:
exit (EXIT_FAILURE);
+ }
}
}
" running \"cat\", editing locally, and then \"write\".\n"
"\n"
" Normally it uses $EDITOR, but if you use the aliases\n"
- " \"vi\" or \"emacs\" you will get those editors.\n"
- "\n"
- " NOTE: This will not work reliably for large files\n"
- " (> 2 MB) or binary files containing \\0 bytes.\n"));
+ " \"vi\" or \"emacs\" you will get those editors.\n"));
return 0;
}
else if (STRCASEEQ (cmd, "lcd")) {
" running \"cat\" and using the pager.\n"
"\n"
" Normally it uses $PAGER, but if you use the alias\n"
- " \"less\" then it always uses \"less\".\n"
- "\n"
- " NOTE: This will not work reliably for large files\n"
- " (> 2 MB) or binary files containing \\0 bytes.\n"));
+ " \"less\" then it always uses \"less\".\n"));
return 0;
}
else if (STRCASEEQ (cmd, "quit") ||