Compare commits

...

4 Commits

Author SHA1 Message Date
MickLesk
dbf3fa6f1d fix(tools.func): remove dangerous trap in create_temp_dir()
The EXIT/ERR/INT/TERM trap inside create_temp_dir() overwrites any
global traps and fires when the shell exits, not when the calling
function returns. Since the function is a utility that returns a path
via stdout, the trap fires immediately on function return and cannot
properly clean up the caller's temp dir. Callers already handle their
own cleanup via explicit rm -rf.
2026-03-19 20:26:38 +01:00
MickLesk
876d14721d refactor(tools.func): quality-of-life improvements
- setup_java(): replace dpkg -l with dpkg-query to avoid column truncation
  that caused version detection to fail and trigger unnecessary reinstalls
- get_cached_version(): return 1 when cache file not found (was always 0)
- setup_uv(): use trap RETURN instead of EXIT to avoid overwriting global
  traps and ensure cleanup runs on function return, not shell exit
- setup_docker(): declare DOCKER_CURRENT_VERSION and DOCKER_LATEST_VERSION
  as local to prevent global namespace pollution
2026-03-19 20:20:02 +01:00
community-scripts-pr-app[bot]
8c452e855b Update CHANGELOG.md (#13090)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-19 14:49:24 +00:00
CanbiZ (MickLesk)
24ce6e006b Increase Tracearr RAM; derive APP_VERSION (#13087) 2026-03-19 15:47:40 +01:00
3 changed files with 13 additions and 26 deletions

View File

@@ -431,6 +431,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### 🐞 Bug Fixes
- Increase Tracearr RAM; derive APP_VERSION [@MickLesk](https://github.com/MickLesk) ([#13087](https://github.com/community-scripts/ProxmoxVE/pull/13087))
- ProjectSend: Update application access URL [@tremor021](https://github.com/tremor021) ([#13078](https://github.com/community-scripts/ProxmoxVE/pull/13078))
- Dispatcharr: use npm install --no-audit --progress=false [@MickLesk](https://github.com/MickLesk) ([#13074](https://github.com/community-scripts/ProxmoxVE/pull/13074))
- core: reorder hwaccel setup and adjust GPU group usermod [@MickLesk](https://github.com/MickLesk) ([#13072](https://github.com/community-scripts/ProxmoxVE/pull/13072))

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Tracearr"
var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
@@ -140,7 +140,7 @@ EOF
msg_ok "Built Tracearr"
msg_info "Configuring Tracearr"
sed -i "s/^APP_VERSION=.*/APP_VERSION=$(cat /root/.tracearr)/" /data/tracearr/.env
sed -i "s|^APP_VERSION=.*|APP_VERSION=${CHECK_UPDATE_RELEASE#v}|" /data/tracearr/.env
chmod 600 /data/tracearr/.env
chown -R tracearr:tracearr /data/tracearr
mkdir -p /data/backup

View File

@@ -282,7 +282,7 @@ get_cached_version() {
cat "/var/cache/app-versions/${app}_version.txt"
return 0
fi
return 0
return 1
}
# ------------------------------------------------------------------------------
@@ -1100,8 +1100,9 @@ get_system_arch() {
# ------------------------------------------------------------------------------
create_temp_dir() {
local tmp_dir=$(mktemp -d)
# Set trap to cleanup on EXIT, ERR, INT, TERM
trap "rm -rf '$tmp_dir'" EXIT ERR INT TERM
# Callers should handle their own cleanup (rm -rf "$tmpdir")
# Do NOT set trap here — it would overwrite global traps and only fire
# when create_temp_dir() itself returns, not the calling function
echo "$tmp_dir"
}
@@ -5351,26 +5352,9 @@ function setup_java() {
"main"
fi
# Get currently installed version
# Get currently installed version (use dpkg-query to avoid column truncation)
local INSTALLED_VERSION=""
if dpkg -l | grep -q "temurin-.*-jdk" 2>/dev/null; then
INSTALLED_VERSION=$(dpkg -l 2>/dev/null | awk '/temurin-.*-jdk/{print $2}' | grep -oP 'temurin-\K[0-9]+' | head -n1 || echo "")
fi
# Validate INSTALLED_VERSION is not empty if JDK package found
local JDK_COUNT=0
JDK_COUNT=$(dpkg -l 2>/dev/null | grep -c "temurin-.*-jdk" || true)
if [[ -z "$INSTALLED_VERSION" && "${JDK_COUNT:-0}" -gt 0 ]]; then
msg_warn "Found Temurin JDK but cannot determine version - attempting reinstall"
# Try to get actual package name for purge
local OLD_PACKAGE
OLD_PACKAGE=$(dpkg -l 2>/dev/null | awk '/temurin-.*-jdk/{print $2}' | head -n1 || echo "")
if [[ -n "$OLD_PACKAGE" ]]; then
msg_info "Removing existing package: $OLD_PACKAGE"
$STD apt purge -y "$OLD_PACKAGE" || true
fi
INSTALLED_VERSION="" # Reset to trigger fresh install
fi
INSTALLED_VERSION=$(dpkg-query -W -f '${Package}\n' 2>/dev/null | grep -oP '^temurin-\K[0-9]+(?=-jdk$)' | head -n1 || echo "")
# Scenario 1: Already at correct version
if [[ "$INSTALLED_VERSION" == "$JAVA_VERSION" ]]; then
@@ -7849,8 +7833,8 @@ function setup_uv() {
local TMP_DIR=$(mktemp -d)
local CACHED_VERSION
# trap for TMP Cleanup
trap "rm -rf '$TMP_DIR'" EXIT
# trap for TMP Cleanup (RETURN instead of EXIT to avoid overwriting global traps)
trap "rm -rf '$TMP_DIR'" RETURN
CACHED_VERSION=$(get_cached_version "uv")
@@ -8120,6 +8104,8 @@ function setup_docker() {
local docker_installed=false
local portainer_installed=false
local USE_DOCKER_REPO="${USE_DOCKER_REPO:-false}"
local DOCKER_CURRENT_VERSION=""
local DOCKER_LATEST_VERSION=""
# Check if Docker is already installed
if command -v docker &>/dev/null; then