diff --git a/scripts/bash/spm.sh b/scripts/bash/spm.sh index 1202e11..f09c66b 100644 --- a/scripts/bash/spm.sh +++ b/scripts/bash/spm.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash -il -[ -f "${PWD}/Package.swift" ] -PACKAGE_EXISTS="$?" +ORIGINAL_DIR="${PWD}" +HAS_EXISTING_PACKAGE=0 +[ -f "${PWD}/Package.swift" ] && HAS_EXISTING_PACKAGE=1 GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) SCRIPT_PATH=$(realpath --relative-to="$GIT_ROOT" "$0" 2>/dev/null || realpath "$0") SUBCOMMAND="$1" @@ -41,19 +42,23 @@ EOF a11y_scan() { # Ensure Package.swift is removed on exit (acts like a finally block) cleanup() { - if [ $PACKAGE_EXISTS -eq 0 ]; then + if [ $HAS_EXISTING_PACKAGE -eq 1 ]; then return fi - rm -f -- "${PWD}/Package.swift" "${PWD}/Package.resolved" + if [ -n "$WORK_DIR" ] && [ -d "$WORK_DIR" ]; then + rm -rf -- "$WORK_DIR" + fi } trap cleanup EXIT setup() { - if [ $PACKAGE_EXISTS -eq 0 ]; then + if [ $HAS_EXISTING_PACKAGE -eq 1 ]; then + WORK_DIR="$ORIGINAL_DIR" return fi - cat > Package.swift < "$WORK_DIR/Package.swift" </dev/null) SCRIPT_PATH=$(realpath --relative-to="$GIT_ROOT" "$0" 2>/dev/null || realpath "$0") SUBCOMMAND="$1" @@ -54,19 +55,23 @@ EOF a11y_scan() { # Ensure Package.swift is removed on exit (acts like a finally block) cleanup() { - if [ $PACKAGE_EXISTS -eq 0 ]; then + if [ $HAS_EXISTING_PACKAGE -eq 1 ]; then return fi - rm -f -- "${PWD}/Package.swift" "${PWD}/Package.resolved" + if [ -n "$WORK_DIR" ] && [ -d "$WORK_DIR" ]; then + rm -rf -- "$WORK_DIR" + fi } trap cleanup EXIT setup() { - if [ $PACKAGE_EXISTS -eq 0 ]; then + if [ $HAS_EXISTING_PACKAGE -eq 1 ]; then + WORK_DIR="$ORIGINAL_DIR" return fi - cat > Package.swift < "$WORK_DIR/Package.swift" </dev/null) SCRIPT_PATH=$(realpath --relative-to="$GIT_ROOT" "$0" 2>/dev/null || realpath "$0") SUBCOMMAND="$1" @@ -53,19 +54,23 @@ EOF a11y_scan() { # Ensure Package.swift is removed on exit (acts like a finally block) cleanup() { - if [ $PACKAGE_EXISTS -eq 0 ]; then + if [ $HAS_EXISTING_PACKAGE -eq 1 ]; then return fi - rm -f -- "${PWD}/Package.swift" "${PWD}/Package.resolved" + if [ -n "$WORK_DIR" ] && [ -d "$WORK_DIR" ]; then + rm -rf -- "$WORK_DIR" + fi } trap cleanup EXIT setup() { - if [ $PACKAGE_EXISTS -eq 0 ]; then + if [ $HAS_EXISTING_PACKAGE -eq 1 ]; then + WORK_DIR="$ORIGINAL_DIR" return fi - cat > Package.swift < "$WORK_DIR/Package.swift" <