" --keys-from-stdin Read passphrases from stdin\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
- " -x Echo each command before executing it\n"
+ " -x Trace libguestfs API calls\n"
"For more information, see the manpage %s(1).\n"),
program_name, program_name, program_name,
program_name);
};
struct drv *drvs = NULL;
struct drv *drv;
- char *p, *file = NULL;
const char *format = NULL;
int c;
int option_index;
- int next_prepared_drive = 1;
g = guestfs_create ();
if (g == NULL) {
if (optind >= argc || argc - optind < 1)
usage (EXIT_FAILURE);
+ /* User must have specified some drives. */
+ if (drvs == NULL)
+ usage (EXIT_FAILURE);
+
/* Add drives, inspect and mount. Note that inspector is always true,
* and there is no -m option.
*/
/* Free up data structures, no longer needed after this point. */
free_drives (drvs);
+ unsigned errors = 0;
+
while (optind < argc) {
if (guestfs_download (g, argv[optind], "/dev/stdout") == -1)
- exit (EXIT_FAILURE);
+ errors++;
optind++;
}
guestfs_close (g);
- exit (EXIT_SUCCESS);
+ exit (errors == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
}