From 730466081c49ee5df3693b5574b14b60fea8368a Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 12 Apr 2016 15:31:54 +0100 Subject: [PATCH] virt-login-shell: allow shell to be a simple string argument Currently the shell config file parameter must be a list giving the shell path and args. Allow it to be a plain string argument as well. Signed-off-by: Daniel P. Berrange --- tools/virt-login-shell.c | 5 +++++ tools/virt-login-shell.conf | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/tools/virt-login-shell.c b/tools/virt-login-shell.c index 51175f74db..527395a5d0 100644 --- a/tools/virt-login-shell.c +++ b/tools/virt-login-shell.c @@ -121,6 +121,8 @@ static int virLoginShellGetShellArgv(virConfPtr conf, goto error; } } + } else if (p->type == VIR_CONF_STRING) { + len = 1; /* /path/to/shell */ } else { virReportSystemError(EINVAL, "%s", _("shell must be a list of strings")); @@ -141,6 +143,9 @@ static int virLoginShellGetShellArgv(virConfPtr conf, if (VIR_STRDUP(shargv[i++], pp->str) < 0) goto error; } + } else if (p->type == VIR_CONF_STRING) { + if (VIR_STRDUP(shargv[i++], p->str) < 0) + goto error; } shargv[i] = NULL; diff --git a/tools/virt-login-shell.conf b/tools/virt-login-shell.conf index 67ca1cc8d9..e29d22206c 100644 --- a/tools/virt-login-shell.conf +++ b/tools/virt-login-shell.conf @@ -5,11 +5,15 @@ # By default, virt-login-shell will connect you to a container running # with the /bin/sh program. Modify the shell variable if you want your # users to run a different shell or a setup container when joining a -# container. Shell commands must be a list of commands/options separated by -# comma and delimited by square brackets. Defaults to: /bin/sh -l. -# Modify and uncomment the following to modify the login shell. +# container. # -# shell = [ "/bin/bash" ] +# This can either be just the path to a shell binary: +# +# shell = "/bin/bash" +# +# Or can be the path and extra arguments +# +# shell = [ "/bin/bash", "--posix" ] # # Note there is no need to pass a '--login' / '-l' argument since # virt-login-shell will always request a login shell