X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=fish%2Ffish.c;h=b62c0988a602380ab5695de397beadbe6f937298;hb=21fef55ca4907aa9872754f20320c24c7f8a5fac;hp=4a960dc0ad18e3a8e8832aa69b1d105fea0ae2a6;hpb=c3887285abbb3606822626ba396a51cb5df80d43;p=libguestfs.git diff --git a/fish/fish.c b/fish/fish.c index 4a960dc..b62c098 100644 --- a/fish/fish.c +++ b/fish/fish.c @@ -1,5 +1,5 @@ /* guestfish - the filesystem interactive shell - * Copyright (C) 2009-2010 Red Hat Inc. + * Copyright (C) 2009-2011 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -74,6 +74,7 @@ static int override_progress_bars = -1; guestfs_h *g; int read_only = 0; +int live = 0; int quit = 0; int verbose = 0; int remote_control_listen = 0; @@ -124,6 +125,7 @@ usage (int status) " -i|--inspector Automatically mount filesystems\n" " --keys-from-stdin Read passphrases from stdin\n" " --listen Listen for remote commands\n" + " --live Connect to a live virtual machine\n" " -m|--mount dev[:mnt] Mount dev on mnt (if omitted, /)\n" " -n|--no-sync Don't autosync\n" " -N|--new type Create prepared disk (test1.img, ...)\n" @@ -173,6 +175,7 @@ main (int argc, char *argv[]) { "inspector", 0, 0, 'i' }, { "keys-from-stdin", 0, 0, 0 }, { "listen", 0, 0, 0 }, + { "live", 0, 0, 0 }, { "mount", 1, 0, 'm' }, { "new", 1, 0, 'N' }, { "no-dest-paths", 0, 0, 'D' }, @@ -277,6 +280,8 @@ main (int argc, char *argv[]) format = optarg; } else if (STREQ (long_options[option_index].name, "csh")) { remote_control_csh = 1; + } else if (STREQ (long_options[option_index].name, "live")) { + live = 1; } else { fprintf (stderr, _("%s: unknown long option: %s (%d)\n"), program_name, long_options[option_index].name, option_index); @@ -678,7 +683,10 @@ parse_command_line (char *buf, int *exit_on_error_rtn) int r; const size_t argv_len = sizeof pcmd.argv / sizeof pcmd.argv[0]; - pcmd.pipe = NULL; + /* Note that pcmd.pipe must be set to NULL for correct usage. Other + * fields do not need to be, but this silences a gcc warning. + */ + memset (&pcmd, 0, sizeof pcmd); again: /* Skip any initial whitespace before the command. */