From f9e38fd6a2a57fc4383816c7a3aa5bdaae523ef2 Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Tue, 14 Mar 2023 21:16:25 +0200 Subject: [PATCH 1/5] Change installation path to ~/.kubescape/bin Signed-off-by: Hollow Man --- install.sh | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/install.sh b/install.sh index 4a0c4f79a5..8168cc715b 100755 --- a/install.sh +++ b/install.sh @@ -35,33 +35,23 @@ DOWNLOAD_URL="https://github.com/kubescape/kubescape/releases/${RELEASE}/kubesca curl --progress-bar -L $DOWNLOAD_URL -o $OUTPUT -# Checking if SUDO needed/exists -SUDO= -if [ "$(id -u)" -ne 0 ] && [ -n "$(which sudo)" ]; then - SUDO=sudo -fi - - # Find install dir -install_dir=/usr/local/bin #default -for pdir in ${PATH//:/ }; do - edir="${pdir/#\~/$HOME}" - if [[ $edir == $HOME/* ]]; then - install_dir=$edir - mkdir -p $install_dir 2>/dev/null || true - SUDO= - break - fi -done +install_dir=/usr/local/bin # default if running as root +if [ "$(id -u)" -ne 0 ]; then + install_dir=$BASE_DIR/bin # if not running as root, install to user dir + export PATH=$PATH:$BASE_DIR/bin +fi # Create install dir if it does not exist if [ ! -d "$install_dir" ]; then - $SUDO mkdir -p $install_dir + mkdir -p $install_dir fi -chmod +x $OUTPUT 2>/dev/null -$SUDO rm -f /usr/local/bin/$KUBESCAPE_EXEC 2>/dev/null || true # clearning up old install -$SUDO cp $OUTPUT $install_dir/$KUBESCAPE_EXEC +chmod +x $OUTPUT 2>/dev/null +# clearning up old install +rm -f /usr/local/bin/$KUBESCAPE_EXEC 2>/dev/null || true +rm -f $BASE_DIR/bin/$KUBESCAPE_EXEC 2>/dev/null || true +cp $OUTPUT $install_dir/$KUBESCAPE_EXEC rm -rf $OUTPUT echo @@ -73,4 +63,9 @@ echo echo -e "\033[35mUsage: $ $KUBESCAPE_EXEC scan --enable-host-scan" +if [ "$(id -u)" -ne 0 ]; then + echo -e "\nRemember to add the Kubescape CLI to your path with:" + echo -e " export PATH=\$PATH:$BASE_DIR/bin" +fi + echo -e "\033[0m" From 0ae4ef2244498adac21d241f18fb297d25091130 Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Tue, 14 Mar 2023 22:23:29 +0200 Subject: [PATCH 2/5] Clean uninstall of old installation Signed-off-by: Hollow Man --- install.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 8168cc715b..9b6bdb391e 100755 --- a/install.sh +++ b/install.sh @@ -48,9 +48,16 @@ if [ ! -d "$install_dir" ]; then fi chmod +x $OUTPUT 2>/dev/null -# clearning up old install -rm -f /usr/local/bin/$KUBESCAPE_EXEC 2>/dev/null || true -rm -f $BASE_DIR/bin/$KUBESCAPE_EXEC 2>/dev/null || true + +# cleaning up old install +SUDO= +if [ "$(id -u)" -ne 0 ] && [ -n "$(which sudo)" ] && [ -f /usr/local/bin/$KUBESCAPE_EXEC ]; then + SUDO=sudo + echo -e "\n\033[33mOld installation as root found. We need the root access to uninstall the old kubescape CLI." +fi +$SUDO rm -f /usr/local/bin/$KUBESCAPE_EXEC 2>/dev/null || true +rm -f /home/${SUDO_USER:-$USER}/.kubescape/bin/$KUBESCAPE_EXEC 2>/dev/null || true + cp $OUTPUT $install_dir/$KUBESCAPE_EXEC rm -rf $OUTPUT From bb04e98d69126dec196d37331fdb1ecb265d32b3 Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Wed, 15 Mar 2023 00:04:21 +0200 Subject: [PATCH 3/5] Add prompt for removing old way of installation Signed-off-by: Hollow Man --- install.sh | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 9b6bdb391e..b0c6218d4a 100755 --- a/install.sh +++ b/install.sh @@ -53,12 +53,41 @@ chmod +x $OUTPUT 2>/dev/null SUDO= if [ "$(id -u)" -ne 0 ] && [ -n "$(which sudo)" ] && [ -f /usr/local/bin/$KUBESCAPE_EXEC ]; then SUDO=sudo - echo -e "\n\033[33mOld installation as root found. We need the root access to uninstall the old kubescape CLI." + echo -e "\n\033[33mOld installation as root found, do you want to remove it? [\033[0my\033[33m/n]:" + read -n 1 -r + if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ "$REPLY" != "" ]]; then + echo -e "\n\033[0mSkipping old installation as root removal." + else + echo -e "\n\033[0mWe will need the root access to uninstall the old kubescape CLI." + if $SUDO rm -f /usr/local/bin/$KUBESCAPE_EXEC 2>/dev/null; then + echo -e "\033[32mRemoved old installation as root at /usr/local/bin/$KUBESCAPE_EXEC" + else + echo -e "\033[31mFailed to remove old installation as root at /usr/local/bin/$KUBESCAPE_EXEC, please remove it manually." + fi + fi fi -$SUDO rm -f /usr/local/bin/$KUBESCAPE_EXEC 2>/dev/null || true + rm -f /home/${SUDO_USER:-$USER}/.kubescape/bin/$KUBESCAPE_EXEC 2>/dev/null || true +rm -f $BASE_DIR/bin/$KUBESCAPE_EXEC 2>/dev/null || true + +# Old install location, clean all those things up +for pdir in ${PATH//:/ }; do + edir="${pdir/#\~/$HOME}" + if [[ $edir == $HOME/* ]] && [[ -f $edir/$KUBESCAPE_EXEC ]]; then + echo -e "\n\033[33mOld installation found at $edir/, do you want to remove it? [\033[0my\033[33m/n]:" + read -n 1 -r + if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ "$REPLY" != "" ]]; then + continue + fi + if rm -f $edir/$KUBESCAPE_EXEC 2>/dev/null; then + echo -e "\n\033[32mRemoved old installation at $edir/$KUBESCAPE_EXEC" + else + echo -e "\n\033[31mFailed to remove old installation as root at $edir/$KUBESCAPE_EXEC, please remove it manually." + fi + fi +done -cp $OUTPUT $install_dir/$KUBESCAPE_EXEC +cp $OUTPUT $install_dir/$KUBESCAPE_EXEC rm -rf $OUTPUT echo From 5c24267ee9eef478521b04915af1032b7d2358bf Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Tue, 21 Mar 2023 13:15:21 +0200 Subject: [PATCH 4/5] check KUBESCAPE_EXEC is not empty before deletion Signed-off-by: Hollow Man --- install.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index b0c6218d4a..78e088baf9 100755 --- a/install.sh +++ b/install.sh @@ -51,7 +51,7 @@ chmod +x $OUTPUT 2>/dev/null # cleaning up old install SUDO= -if [ "$(id -u)" -ne 0 ] && [ -n "$(which sudo)" ] && [ -f /usr/local/bin/$KUBESCAPE_EXEC ]; then +if [ "$(id -u)" -ne 0 ] && [ -n "$(which sudo)" ] && [ "$KUBESCAPE_EXEC" != "" ] && [ -f /usr/local/bin/$KUBESCAPE_EXEC ]; then SUDO=sudo echo -e "\n\033[33mOld installation as root found, do you want to remove it? [\033[0my\033[33m/n]:" read -n 1 -r @@ -67,14 +67,20 @@ if [ "$(id -u)" -ne 0 ] && [ -n "$(which sudo)" ] && [ -f /usr/local/bin/$KUBESC fi fi -rm -f /home/${SUDO_USER:-$USER}/.kubescape/bin/$KUBESCAPE_EXEC 2>/dev/null || true -rm -f $BASE_DIR/bin/$KUBESCAPE_EXEC 2>/dev/null || true +if [ "$KUBESCAPE_EXEC" != "" ]; then + if [ "${SUDO_USER:-$USER}" != "" ]; then + rm -f /home/${SUDO_USER:-$USER}/.kubescape/bin/$KUBESCAPE_EXEC 2>/dev/null || true + fi + if [ "$BASE_DIR" != "" ]; then + rm -f $BASE_DIR/bin/$KUBESCAPE_EXEC 2>/dev/null || true + fi +fi # Old install location, clean all those things up for pdir in ${PATH//:/ }; do edir="${pdir/#\~/$HOME}" if [[ $edir == $HOME/* ]] && [[ -f $edir/$KUBESCAPE_EXEC ]]; then - echo -e "\n\033[33mOld installation found at $edir/, do you want to remove it? [\033[0my\033[33m/n]:" + echo -e "\n\033[33mOld installation found at $edir/$KUBESCAPE_EXEC, do you want to remove it? [\033[0my\033[33m/n]:" read -n 1 -r if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ "$REPLY" != "" ]]; then continue @@ -88,7 +94,7 @@ for pdir in ${PATH//:/ }; do done cp $OUTPUT $install_dir/$KUBESCAPE_EXEC -rm -rf $OUTPUT +rm -f $OUTPUT echo echo -e "\033[32mFinished Installation." From d2dcd29089b6f3d82c6eae6f5969438596fd0cf0 Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Fri, 24 Mar 2023 13:39:15 +0200 Subject: [PATCH 5/5] fix shellcheck warning and info Signed-off-by: Hollow Man --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 78e088baf9..48295ab358 100755 --- a/install.sh +++ b/install.sh @@ -5,10 +5,11 @@ while getopts v: option do case ${option} in v) RELEASE="download/${OPTARG}";; + *) ;; esac done -if [ -z ${RELEASE} ]; then +if [ -z "${RELEASE}" ]; then RELEASE="latest/download" fi @@ -17,7 +18,6 @@ echo BASE_DIR=~/.kubescape KUBESCAPE_EXEC=kubescape -KUBESCAPE_ZIP=kubescape.zip osName=$(uname -s) if [[ $osName == *"MINGW"* ]]; then @@ -69,7 +69,7 @@ fi if [ "$KUBESCAPE_EXEC" != "" ]; then if [ "${SUDO_USER:-$USER}" != "" ]; then - rm -f /home/${SUDO_USER:-$USER}/.kubescape/bin/$KUBESCAPE_EXEC 2>/dev/null || true + rm -f /home/"${SUDO_USER:-$USER}"/.kubescape/bin/$KUBESCAPE_EXEC 2>/dev/null || true fi if [ "$BASE_DIR" != "" ]; then rm -f $BASE_DIR/bin/$KUBESCAPE_EXEC 2>/dev/null || true @@ -85,7 +85,7 @@ for pdir in ${PATH//:/ }; do if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ "$REPLY" != "" ]]; then continue fi - if rm -f $edir/$KUBESCAPE_EXEC 2>/dev/null; then + if rm -f "$edir"/$KUBESCAPE_EXEC 2>/dev/null; then echo -e "\n\033[32mRemoved old installation at $edir/$KUBESCAPE_EXEC" else echo -e "\n\033[31mFailed to remove old installation as root at $edir/$KUBESCAPE_EXEC, please remove it manually."