From f43da7fcfb3aa45ebd145ebe333ca5316d93c8b9 Mon Sep 17 00:00:00 2001 From: Tony Fahrion Date: Wed, 28 Jun 2017 09:41:23 +0200 Subject: [PATCH] makes sudo an optional dependency in scripts/get If the execution user is already the root user, this avoids requireing sudo to be installed within the environment. Which might helo in CI environments. --- scripts/get | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/scripts/get b/scripts/get index 02884d7f9..f3b0810d6 100755 --- a/scripts/get +++ b/scripts/get @@ -46,6 +46,17 @@ initOS() { esac } +# runs the given command as root (detects if we are root already) +runAsRoot() { + local CMD="$*" + + if ! whoami | egrep -q '^root$'; then + CMD="sudo $*" + fi + + $CMD +} + # verifySupported checks that the os/arch combination is supported for # binary builds. verifySupported() { @@ -129,8 +140,8 @@ installFile() { mkdir -p "$HELM_TMP" tar xf "$HELM_TMP_FILE" -C "$HELM_TMP" HELM_TMP_BIN="$HELM_TMP/$OS-$ARCH/$PROJECT_NAME" - echo "Preparing to install into ${HELM_INSTALL_DIR} (sudo)" - sudo cp "$HELM_TMP_BIN" "$HELM_INSTALL_DIR" + echo "Preparing to install into ${HELM_INSTALL_DIR}" + runAsRoot cp "$HELM_TMP_BIN" "$HELM_INSTALL_DIR" } # fail_trap is executed if an error occurs.