diff options
Diffstat (limited to 'fish')
-rw-r--r-- | fish/fish.c | 5 | ||||
-rw-r--r-- | fish/guestfish.pod | 5 | ||||
-rw-r--r-- | fish/inspect.c | 6 | ||||
-rw-r--r-- | fish/options.h | 1 | ||||
-rw-r--r-- | fish/virt.c | 4 |
5 files changed, 21 insertions, 0 deletions
diff --git a/fish/fish.c b/fish/fish.c index eb7c8fe8..b62c0988 100644 --- a/fish/fish.c +++ b/fish/fish.c @@ -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); diff --git a/fish/guestfish.pod b/fish/guestfish.pod index 0f318f04..abf6d7ac 100644 --- a/fish/guestfish.pod +++ b/fish/guestfish.pod @@ -294,6 +294,11 @@ to try to read passphrases from the user by opening C</dev/tty>. Fork into the background and listen for remote commands. See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET> below. +=item B<--live> + +Connect to a live virtual machine. +(Experimental, see L<guestfs(3)/ATTACHING TO RUNNING DAEMONS>). + =item B<-m dev[:mountpoint]> =item B<--mount dev[:mountpoint]> diff --git a/fish/inspect.c b/fish/inspect.c index 713501e9..5e1948cd 100644 --- a/fish/inspect.c +++ b/fish/inspect.c @@ -73,6 +73,12 @@ compare_keys (const void *p1, const void *p2) void inspect_mount (void) { + if (live) { + fprintf (stderr, _("%s: don't use --live and -i options together\n"), + program_name); + exit (EXIT_FAILURE); + } + inspect_do_decrypt (); char **roots = guestfs_inspect_os (g); diff --git a/fish/options.h b/fish/options.h index 728df04a..b755d906 100644 --- a/fish/options.h +++ b/fish/options.h @@ -67,6 +67,7 @@ /* Provided by guestfish or guestmount. */ extern guestfs_h *g; extern int read_only; +extern int live; extern int verbose; extern int inspector; extern int keys_from_stdin; diff --git a/fish/virt.c b/fish/virt.c index 13a6d127..b14cee2b 100644 --- a/fish/virt.c +++ b/fish/virt.c @@ -43,6 +43,10 @@ add_libvirt_drives (const char *guest) optargs.bitmask |= GUESTFS_ADD_DOMAIN_READONLY_BITMASK; optargs.readonly = 1; } + if (live) { + optargs.bitmask |= GUESTFS_ADD_DOMAIN_LIVE_BITMASK; + optargs.live = 1; + } return guestfs_add_domain_argv (g, guest, &optargs); } |