diff --git a/Droidnix/install_Droidnix.sh b/Droidnix/install_Droidnix.sh index 08909d229..83fa89a1d 100755 --- a/Droidnix/install_Droidnix.sh +++ b/Droidnix/install_Droidnix.sh @@ -2,6 +2,27 @@ set -euo pipefail +### ───────────────────────────── +### Step 0 — Request sudo upfront +### ───────────────────────────── +if ! command -v sudo >/dev/null 2>&1; then + echo "Error: sudo is required." + exit 1 +fi + +echo "Requesting sudo privileges..." +sudo -v + +# Keep sudo alive in the background +( while true; do sudo -n true; sleep 60; done ) & +SUDO_KEEPALIVE_PID=$! + +# Ensure cleanup on exit +cleanup() { + kill "$SUDO_KEEPALIVE_PID" >/dev/null 2>&1 || true +} +trap cleanup EXIT + ### ───────────────────────────── ### Step 1 — Collect system identity ### ───────────────────────────── @@ -68,12 +89,10 @@ done ### ───────────────────────────── echo "Replacing file contents..." -# Helper: only text files is_text() { file --mime "$1" | grep -q text } -# 5.1 generated/* if [ -d "$TARGET_DIR/generated" ]; then find "$TARGET_DIR/generated" -type f | while read -r f; do is_text "$f" && sed -i "s/henrov/$USER_NAME/g" "$f" @@ -82,7 +101,6 @@ fi README="$TARGET_DIR/README.org" -# 5.2 + 5.6 (org blocks only) if [ -f "$README" ]; then awk -v user="$USER_NAME" -v host="$HOSTNAME_NAME" ' BEGIN { inblock=0 } @@ -97,7 +115,6 @@ if [ -f "$README" ]; then }' "$README" > "$README.tmp" && mv "$README.tmp" "$README" fi -# 5.3 + 5.4 global replacements find "$TARGET_DIR" -type f | while read -r f; do if is_text "$f"; then sed -i \ @@ -176,4 +193,4 @@ Then rebuild with: cd ~/Droidnix && sudo nixos-rebuild switch --flake .#$(hostname) -EOF \ No newline at end of file +EOF