[lxc-devel] [PATCH] lxc-download: Add interactive mode
Stéphane Graber
stgraber at ubuntu.com
Wed Jan 22 19:18:25 UTC 2014
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
templates/lxc-download.in | 43 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 36 insertions(+), 7 deletions(-)
diff --git a/templates/lxc-download.in b/templates/lxc-download.in
index 4d43460..66894ce 100644
--- a/templates/lxc-download.in
+++ b/templates/lxc-download.in
@@ -41,9 +41,11 @@ DOWNLOAD_USE_CACHE="false"
DOWNLOAD_URL=
DOWNLOAD_SHOW_HTTP_WARNING="true"
DOWNLOAD_SHOW_GPG_WARNING="true"
+DOWNLOAD_READY_GPG="false"
DOWNLOAD_COMPAT_LEVEL=1
DOWNLOAD_LIST_IMAGES="false"
DOWNLOAD_BUILD=
+DOWNLOAD_INTERACTIVE="false"
LXC_NAME=
LXC_PATH=
@@ -95,6 +97,10 @@ gpg_setup() {
return
fi
+ if [ "$DOWNLOAD_READY_GPG" = "true" ]; then
+ return
+ fi
+
echo "Setting up the GPG keyring"
mkdir -p "$DOWNLOAD_TEMP/gpg"
@@ -105,6 +111,8 @@ gpg_setup() {
echo "ERROR: Unable to fetch GPG key from keyserver."
exit 1
fi
+
+ DOWNLOAD_READY_GPG="true"
}
gpg_validate() {
@@ -234,11 +242,9 @@ if [ "$(in_userns)" = "yes" ]; then
DOWNLOAD_MODE="user"
fi
-if ([ -z "$DOWNLOAD_DIST" ] || [ -z "$DOWNLOAD_RELEASE" ] || \
- [ -z "$DOWNLOAD_ARCH" ]) && [ "$DOWNLOAD_LIST_IMAGES" = "false" ]; then
- echo "ERROR: Missing required argument" 1>&2
- usage
- exit 1
+if [ -z "$DOWNLOAD_DIST" ] || [ -z "$DOWNLOAD_RELEASE" ] || \
+ [ -z "$DOWNLOAD_ARCH" ]; then
+ DOWNLOAD_INTERACTIVE="true"
fi
# Trap all exit signals
@@ -246,7 +252,8 @@ trap cleanup EXIT HUP INT TERM
DOWNLOAD_TEMP=$(mktemp -d)
# Simply list images
-if [ "$DOWNLOAD_LIST_IMAGES" = "true" ]; then
+if [ "$DOWNLOAD_LIST_IMAGES" = "true" ] || \
+ [ "$DOWNLOAD_INTERACTIVE" = "true" ]; then
# Initialize GPG
gpg_setup
@@ -287,7 +294,29 @@ if [ "$DOWNLOAD_LIST_IMAGES" = "true" ]; then
done < ${DOWNLOAD_TEMP}/index
echo "---"
- exit 1
+ if [ "$DOWNLOAD_LIST_IMAGES" = "true" ]; then
+ exit 1
+ fi
+
+ # Interactive mode
+ echo ""
+
+ if [ -z "$DOWNLOAD_DIST" ]; then
+ echo -n "Distribution: "
+ read DOWNLOAD_DIST
+ fi
+
+ if [ -z "$DOWNLOAD_RELEASE" ]; then
+ echo -n "Release: "
+ read DOWNLOAD_RELEASE
+ fi
+
+ if [ -z "$DOWNLOAD_ARCH" ]; then
+ echo -n "Architecture: "
+ read DOWNLOAD_ARCH
+ fi
+
+ echo ""
fi
# Setup the cache
--
1.8.5.3
More information about the lxc-devel
mailing list