1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-07 03:35:40 +00:00

fix: address mo update hanging and imporve temporary file reliability

This commit is contained in:
Tw93
2026-01-12 14:55:42 +08:00
parent add3cca6ef
commit 5d5056fc9e
4 changed files with 20 additions and 16 deletions

View File

@@ -512,7 +512,7 @@ declare -a MOLE_TEMP_DIRS=()
create_temp_file() {
local temp
temp=$(mktemp) || return 1
MOLE_TEMP_FILES+=("$temp")
register_temp_file "$temp"
echo "$temp"
}
@@ -520,7 +520,7 @@ create_temp_file() {
create_temp_dir() {
local temp
temp=$(mktemp -d) || return 1
MOLE_TEMP_DIRS+=("$temp")
register_temp_dir "$temp"
echo "$temp"
}
@@ -538,9 +538,12 @@ register_temp_dir() {
# Compatible with both BSD mktemp (macOS default) and GNU mktemp (coreutils)
mktemp_file() {
local prefix="${1:-mole}"
local temp
# Use TMPDIR if set, otherwise /tmp
# Add .XXXXXX suffix to work with both BSD and GNU mktemp
mktemp "${TMPDIR:-/tmp}/${prefix}.XXXXXX"
temp=$(mktemp "${TMPDIR:-/tmp}/${prefix}.XXXXXX") || return 1
register_temp_file "$temp"
echo "$temp"
}
# Cleanup all tracked temp files and directories

View File

@@ -34,7 +34,7 @@ update_via_homebrew() {
temp_upgrade=$(mktemp_file "brew_upgrade")
# Set up trap for interruption (Ctrl+C) with inline cleanup
trap 'stop_inline_spinner 2>/dev/null; rm -f "$temp_update" "$temp_upgrade" 2>/dev/null; echo ""; exit 130' INT TERM
trap "stop_inline_spinner 2>/dev/null; rm -f \"$temp_update\" \"$temp_upgrade\" 2>/dev/null; echo \"\"; exit 130" INT TERM
# Update Homebrew
if [[ -t 1 ]]; then