From a2c9211dac028d9c0624a0b2b91afc5f1d2e7294 Mon Sep 17 00:00:00 2001 From: Kpa-clawbot Date: Mon, 30 Mar 2026 22:05:10 -0700 Subject: [PATCH] Fix tilde expansion for .env paths in manage.sh (#318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - fix safe .env parser in manage.sh to expand a leading ~ before export - ensure setup-time PROD_DATA_DIR read from .env also expands ~ - keep behavior unchanged for non-tilde values ## Why xport "=" does not perform tilde expansion, so values like PROD_DATA_DIR=~/meshcore-data stayed literal and broke path-based operations in manage.sh. ## Validation - ash -n manage.sh - manual reasoning: PROD_DATA_DIR=~/meshcore-data now resolves to $HOME/meshcore-data ## Notes Docker Compose handling is unchanged (compose already expands ~); this PR only fixes manage.sh runtime parsing. Co-authored-by: Kpa-clawbot <259247574+Kpa-clawbot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- manage.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manage.sh b/manage.sh index 9fd542be..290af9cb 100755 --- a/manage.sh +++ b/manage.sh @@ -21,6 +21,7 @@ if [ -f .env ]; then key=$(printf '%s' "$key" | sed 's/\r$//' | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//') [[ "$key" =~ ^#.*$ || -z "$key" ]] && continue value=$(printf '%s' "$value" | sed 's/\r$//' | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//') + value="${value/#\~/$HOME}" export "$key=$value" done < .env set +a @@ -580,6 +581,7 @@ cmd_setup() { env_mqtt=$(get_env_value "PROD_MQTT_PORT" ".env") env_disable_mosquitto=$(get_env_value "DISABLE_MOSQUITTO" ".env") env_data_dir=$(get_env_value "PROD_DATA_DIR" ".env") + env_data_dir="${env_data_dir/#\~/$HOME}" [ -n "$env_data_dir" ] && selected_data_dir="$env_data_dir" [ -n "$env_disable_mosquitto" ] && selected_disable_mosquitto="$env_disable_mosquitto" show_env_port_summary "${env_http:-}" "${env_https:-}" "${env_mqtt:-}" "${env_data_dir:-}" "${env_disable_mosquitto:-}"