diff options
author | Richard Jones <rjones@redhat.com> | 2009-04-22 09:00:39 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2009-04-22 09:00:39 +0100 |
commit | 43db06ea892cc157324a6b837ca430607441c509 (patch) | |
tree | fc377195fcfda3b163d8f184a6965bb64b1bb018 /src/guestfs.c | |
parent | 54dd7be5855055a698291084c0074a1abac7b921 (diff) | |
download | libguestfs-43db06ea892cc157324a6b837ca430607441c509.tar.gz libguestfs-43db06ea892cc157324a6b837ca430607441c509.tar.xz libguestfs-43db06ea892cc157324a6b837ca430607441c509.zip |
Allow qemu binary to be overridden at runtime.
Diffstat (limited to 'src/guestfs.c')
-rw-r--r-- | src/guestfs.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/guestfs.c b/src/guestfs.c index 0bec3b74..1642019a 100644 --- a/src/guestfs.c +++ b/src/guestfs.c @@ -156,6 +156,7 @@ struct guestfs_h int autosync; const char *path; + const char *qemu; char *last_error; @@ -217,7 +218,9 @@ guestfs_create (void) str = getenv ("LIBGUESTFS_PATH"); g->path = str != NULL ? str : GUESTFS_DEFAULT_PATH; - /* XXX We should probably make QEMU configurable as well. */ + + str = getenv ("LIBGUESTFS_QEMU"); + g->qemu = str != NULL ? str : QEMU; g->main_loop = guestfs_get_default_main_loop (); @@ -511,6 +514,22 @@ guestfs_get_path (guestfs_h *g) return g->path; } +int +guestfs_set_qemu (guestfs_h *g, const char *qemu) +{ + if (qemu == NULL) + g->qemu = QEMU; + else + g->qemu = qemu; + return 0; +} + +const char * +guestfs_get_qemu (guestfs_h *g) +{ + return g->qemu; +} + /* Add a string to the current command line. */ static void incr_cmdline_size (guestfs_h *g) @@ -715,7 +734,7 @@ guestfs_launch (guestfs_h *g) /* Set up the full command line. Do this in the subprocess so we * don't need to worry about cleaning up. */ - g->cmdline[0] = (char *) QEMU; + g->cmdline[0] = (char *) g->qemu; /* Construct the -net channel parameter for qemu. */ snprintf (vmchannel, sizeof vmchannel, @@ -752,7 +771,7 @@ guestfs_launch (guestfs_h *g) g->cmdline[g->cmdline_size-1] = NULL; if (g->verbose) { - fprintf (stderr, "%s", QEMU); + fprintf (stderr, "%s", g->qemu); for (i = 0; g->cmdline[i]; ++i) fprintf (stderr, " %s", g->cmdline[i]); fprintf (stderr, "\n"); @@ -775,8 +794,8 @@ guestfs_launch (guestfs_h *g) setpgid (0, 0); #endif - execv (QEMU, g->cmdline); /* Run qemu. */ - perror (QEMU); + execv (g->qemu, g->cmdline); /* Run qemu. */ + perror (g->qemu); _exit (1); } |