From eb1a4c76bab8ccfecbc8012e24a420ac95ddabf0 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 21 Jan 2026 06:19:17 -0500 Subject: [PATCH] Store piped script to intermediate file --- installJRMC | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/installJRMC b/installJRMC index 10e93ff..3f00426 100755 --- a/installJRMC +++ b/installJRMC @@ -236,6 +236,17 @@ init() { declare -g USER declare -g SCRIPT_PATH; SCRIPT_PATH=$(readlink -f "${BASH_SOURCE[0]}") declare -g SCRIPT_DIR; SCRIPT_DIR=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")") + + # If script is being piped, save it to a temp file for re-execution + if [[ ! -f $SCRIPT_PATH ]]; then + declare -g SCRIPT_TEMP + SCRIPT_TEMP=$(mktemp) + cat "${BASH_SOURCE[0]}" > "$SCRIPT_TEMP" + chmod +x "$SCRIPT_TEMP" + SCRIPT_PATH="$SCRIPT_TEMP" + SCRIPT_DIR=$(dirname "$SCRIPT_TEMP") + fi + declare -g OUTPUT_DIR="$SCRIPT_DIR/output" declare -g CREATEREPO_WEBROOT="/var/www/jriver" declare -g CREATEREPO_USER="$USER" # can be root @@ -644,9 +655,7 @@ install_legacy_repo() { Architectures: $MC_ARCH Signed-By: $repo_key EOF - # Set a trap to always cleanup legacy repo - # shellcheck disable=SC2064 - trap "sudo rm -f $temp_repo_file" EXIT INT TERM + declare -g LEGACY_REPO_FILE="$temp_repo_file" fi } @@ -1837,6 +1846,7 @@ main() { echo "Updating package lists" if ! execute "${PKG_UPDATE[@]}"; then err "Package update failed!" + [[ -n $LEGACY_REPO_FILE ]] && sudo rm -f "$LEGACY_REPO_FILE" if [[ $MC_REPO != "$MC_REPO_HARDCODE" ]]; then echo "Rerunning installJRMC with --mcrepo=$MC_REPO_HARDCODE" exec "$SCRIPT_PATH" "$@" "--no-update" "--mcrepo=$MC_REPO_HARDCODE" @@ -1847,9 +1857,13 @@ main() { echo "Installing $MC_PKG package" if ! install_package --no-install-check --no-gpg-check --allow-downgrades "$MC_PKG"; then err "MC package install failed!" + [[ -n $LEGACY_REPO_FILE ]] && sudo rm -f "$LEGACY_REPO_FILE" return 1 fi + # Clean up legacy repo after successful install + [[ -n $LEGACY_REPO_FILE ]] && sudo rm -f "$LEGACY_REPO_FILE" + link_ssl_certs restore_license open_firewall "jriver-mediacenter" "52100-52200/tcp" "1900/udp"