From b89013c7b943e1613d94082675fd78a6b7f267c4 Mon Sep 17 00:00:00 2001 From: armorbreak001 Date: Tue, 21 Apr 2026 12:40:50 +0800 Subject: [PATCH] fix(wrapper): replace mktemp with POSIX-compliant temp dir creation in only-mvnw mktemp is not available in all POSIX shells (e.g., ksh, some bash versions on AIX). Use TMPDIR/PID/timestamp-based directory creation with mkdir -p instead, which works everywhere. Fixes #311 --- maven-wrapper-distribution/src/resources/only-mvnw | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/maven-wrapper-distribution/src/resources/only-mvnw b/maven-wrapper-distribution/src/resources/only-mvnw index 6d8e3f8d..44b67de6 100755 --- a/maven-wrapper-distribution/src/resources/only-mvnw +++ b/maven-wrapper-distribution/src/resources/only-mvnw @@ -160,8 +160,10 @@ case "${distributionUrl-}" in *) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; esac -# prepare tmp dir -if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then +# prepare tmp dir (POSIX-compatible: avoid mktemp which is not available in all shells) +_tmp_base="${TMPDIR:-/tmp}" +TMP_DOWNLOAD_DIR="$_tmp_base/maven_wrapper.$$_$(date +%s)" +if mkdir -p -- "$TMP_DOWNLOAD_DIR" && [ -d "$TMP_DOWNLOAD_DIR" ]; then clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } trap clean HUP INT TERM EXIT else