From 67979fa1ace9e6de8a8a8bbb82893ef31d0192b3 Mon Sep 17 00:00:00 2001 From: FMotalleb Date: Thu, 31 Oct 2024 14:01:46 +0330 Subject: [PATCH] fix,minor: safely handle env vars --- make.sh | 64 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/make.sh b/make.sh index 469aea0..7953bd3 100755 --- a/make.sh +++ b/make.sh @@ -17,7 +17,7 @@ if [ ! -f ".root" ]; then fi WORKING_DIR=$(pwd) -mkdir temp 2> /dev/null || true +mkdir temp 2>/dev/null || true echo "[*] fetching ruby gem version..." RB_GEM_NAME="gitlab-license" @@ -30,14 +30,14 @@ while IFS= read -r line; do RB_GEM_VERSION=${RB_GEM_VERSION%")"} break fi -done <<< "$RB_GEM_LIST_OUTPUT" +done <<<"$RB_GEM_LIST_OUTPUT" echo "[*] gitlab-license version: $RB_GEM_VERSION" RB_GEM_DOWNLOAD_URL="https://rubygems.org/downloads/gitlab-license-$RB_GEM_VERSION.gem" RB_GEM_DOWNLOAD_PATH=$(pwd)/temp/gem/gitlab-license.gem -mkdir -p $(dirname $RB_GEM_DOWNLOAD_PATH) -curl -L $RB_GEM_DOWNLOAD_URL -o $RB_GEM_DOWNLOAD_PATH 1> /dev/null 2> /dev/null -pushd $(dirname $RB_GEM_DOWNLOAD_PATH) > /dev/null +mkdir -p "$(dirname "$RB_GEM_DOWNLOAD_PATH")" +curl -L "$RB_GEM_DOWNLOAD_URL" -o "$RB_GEM_DOWNLOAD_PATH" 1>/dev/null 2>/dev/null +pushd "$(dirname "$RB_GEM_DOWNLOAD_PATH")" >/dev/null tar -xf gitlab-license.gem tar -xf data.tar.gz @@ -47,31 +47,34 @@ if [ ! -f "./lib/gitlab/license.rb" ]; then fi echo "[*] copying gem..." -rm -rf "$WORKING_DIR/lib" || true +rm -rf "${WORKING_DIR:?}/lib" || true mkdir -p "$WORKING_DIR/lib" -cp -r ./lib/gitlab/* $WORKING_DIR/lib -popd > /dev/null +cp -r ./lib/gitlab/* "$WORKING_DIR/lib" +popd >/dev/null -pushd lib > /dev/null +pushd lib >/dev/null echo "[*] patching lib requirements gem..." # Determine the operating system OS_TYPE="$(uname -s)" -case "$OS_TYPE" in - Linux*) - sed_i_cmd="sed -i";; - Darwin*) - sed_i_cmd="sed -i ''";; - *) - echo "Unsupported OS: $OS_TYPE"; - exit 1;; +case "$OS_TYPE" in +Linux*) + sed_i_cmd="sed -i" + ;; +Darwin*) + sed_i_cmd="sed -i ''" + ;; +*) + echo "Unsupported OS: $OS_TYPE" + exit 1 + ;; esac # replace `require 'gitlab/license/` with `require 'license/` to make it work -find . -type f -exec $sed_i_cmd 's/require '\''gitlab\/license\//require_relative '\''license\//g' {} \; +find . -type f -exec "$sed_i_cmd" 's/require '\''gitlab\/license\//require_relative '\''license\//g' {} \; -popd > /dev/null +popd >/dev/null echo "[*] updated gem" @@ -82,22 +85,21 @@ mkdir -p "$GITLAB_SOURCE_CODE_DIR" echo "[*] downloading features file..." curl -L https://gitlab.com/gitlab-org/gitlab/-/raw/master/ee/app/models/gitlab_subscriptions/features.rb?inline=false -o "$GITLAB_SOURCE_CODE_DIR/features.rb" - BUILD_DIR=$(pwd)/build -mkdir -p $BUILD_DIR +mkdir -p "$BUILD_DIR" echo "[*] scanning features..." FEATURE_LIST_FILE=$BUILD_DIR/features.json -rm -f $FEATURE_LIST_FILE || true +rm -f "${FEATURE_LIST_FILE:?}" || true ./src/scan.features.rb \ - -o $FEATURE_LIST_FILE \ + -o "$FEATURE_LIST_FILE" \ -f "$GITLAB_SOURCE_CODE_DIR/features.rb" echo "[*] generating key pair..." PUBLIC_KEY_FILE=$BUILD_DIR/public.key PRIVATE_KEY_FILE=$BUILD_DIR/private.key -cp -f ./keys/public.key $PUBLIC_KEY_FILE -cp -f ./keys/private.key $PRIVATE_KEY_FILE +cp -f ./keys/public.key "$PUBLIC_KEY_FILE" +cp -f ./keys/private.key "$PRIVATE_KEY_FILE" # execute following command to generate new keys # ./src/generator.keys.rb \ @@ -109,16 +111,16 @@ LICENSE_FILE=$BUILD_DIR/result.gitlab-license LICENSE_JSON_FILE=$BUILD_DIR/license.json ./src/generator.license.rb \ - -f $FEATURE_LIST_FILE \ - --public-key $PUBLIC_KEY_FILE \ - --private-key $PRIVATE_KEY_FILE \ - -o $LICENSE_FILE \ + -f "$FEATURE_LIST_FILE" \ + --public-key "$PUBLIC_KEY_FILE" \ + --private-key "$PRIVATE_KEY_FILE" \ + -o "$LICENSE_FILE" \ --license-name "$LICENSE_NAME" \ --license-company "$LICENSE_COMPANY" \ --license-email "$LICENSE_EMAIL" \ --license-plan "$LICENSE_PLAN" \ --license-user-count "$LICENSE_USER_COUNT" \ --license-expire-year "$LICENSE_EXPIRE_YEAR" \ - --plain-license $LICENSE_JSON_FILE + --plain-license "$LICENSE_JSON_FILE" -echo "[*] done $(basename $0)" +echo "[*] done $(basename "$0")"