Prechádzať zdrojové kódy

fix: robust home directory resolution for INSTALL_DIR under sudo

eval tilde expansion can fail in some environments. Add /etc/passwd
fallback to ensure INSTALL_DIR always resolves to the real user's
home, not /root.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tuanchris 4 mesiacov pred
rodič
commit
78cd1e57db
1 zmenil súbory, kde vykonal 7 pridanie a 1 odobranie
  1. 7 1
      setup-pi.sh

+ 7 - 1
setup-pi.sh

@@ -28,7 +28,13 @@ NC='\033[0m' # No Color
 # Default options
 FIX_WIFI=true  # Applied by default for stability
 SETUP_HOTSPOT=true  # Autohotspot for first-time WiFi setup
-INSTALL_DIR="$(eval echo ~"${SUDO_USER:-$USER}")/dune-weaver"
+REAL_USER="${SUDO_USER:-$USER}"
+REAL_HOME="$(eval echo ~"$REAL_USER")"
+# Fallback: if tilde didn't expand, read from /etc/passwd
+if [[ "$REAL_HOME" == "~$REAL_USER" ]]; then
+    REAL_HOME="$(grep "^$REAL_USER:" /etc/passwd | cut -d: -f6)"
+fi
+INSTALL_DIR="$REAL_HOME/dune-weaver"
 REPO_URL="https://github.com/tuanchris/dune-weaver"
 
 # Parse arguments