summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-03-26 20:08:45 +0000
committerRichard Jones <rjones@redhat.com>2010-03-26 20:08:45 +0000
commit977edb3185fe8f0cc01840227ac6d3ea1785d3c9 (patch)
treee7d0189ea3f6a6bc7ac6945a6bf2d1626a915529
parentcd551619947d5f1683bca3581da1e35abcad47c2 (diff)
downloadlibguestfs-977edb3185fe8f0cc01840227ac6d3ea1785d3c9.tar.gz
libguestfs-977edb3185fe8f0cc01840227ac6d3ea1785d3c9.tar.xz
libguestfs-977edb3185fe8f0cc01840227ac6d3ea1785d3c9.zip
rescue: Pass $TERM from library into the virt-rescue appliance.
We set it on the kernel command line, then get it out from there when the rescue appliance boots.
-rwxr-xr-xappliance/init2
-rw-r--r--src/guestfs.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/appliance/init b/appliance/init
index a3f47840..f3999160 100755
--- a/appliance/init
+++ b/appliance/init
@@ -78,7 +78,7 @@ if ! grep -sq guestfs_rescue=1 /proc/cmdline; then
fi
# Use appliance in rescue mode, also used by the virt-rescue command.
-TERM=linux ;# XXX library should pass this from library's environment
+eval $(grep -Eo 'TERM=[^[:space:]]+' /proc/cmdline)
PS1='><rescue> '
export TERM PS1
echo
diff --git a/src/guestfs.c b/src/guestfs.c
index e6fcb0ea..e235fdcd 100644
--- a/src/guestfs.c
+++ b/src/guestfs.c
@@ -1257,10 +1257,12 @@ guestfs__launch (guestfs_h *g)
"%s " /* (selinux) */
"%s " /* (vmchannel) */
"%s " /* (verbose) */
+ "TERM=%s " /* (TERM environment variable) */
"%s", /* (append) */
g->selinux ? "selinux=1 enforcing=0" : "selinux=0",
vmchannel ? vmchannel : "",
g->verbose ? "guestfs_verbose=1" : "",
+ getenv ("TERM") ? : "linux",
g->append ? g->append : "");
add_cmdline (g, "-kernel");