diff --git a/Droidnix/install_Droidnix.sh b/Droidnix/install_Droidnix.sh index 7d5cf4792..7ba4ab816 100755 --- a/Droidnix/install_Droidnix.sh +++ b/Droidnix/install_Droidnix.sh @@ -1,6 +1,17 @@ #!/usr/bin/env bash set -euo pipefail +### ───────────────────────────── +### Ask for sudo at start +### ───────────────────────────── +echo "Requesting sudo privileges..." +sudo -v + +# Keep sudo alive in background +( while true; do sudo -n true; sleep 60; done ) & +SUDO_KEEPALIVE_PID=$! +trap 'kill $SUDO_KEEPALIVE_PID' EXIT + ### ───────────────────────────── ### Configuration ### ───────────────────────────── @@ -47,15 +58,13 @@ else exit 1 fi -echo "Extracting to $TMP_DIR/unzipped..." +echo "Extracting..." unzip -q "$TMP_DIR/main.zip" -d "$TMP_DIR/unzipped" -# Gitea zip contains folder like: repo-main/ -# Adjusting safely: cp -r "$TMP_DIR"/unzipped/*/Droidnix/* "$TARGET_DIR/" ### ───────────────────────────── -### Step 4 — Rename files (deepest first) +### Step 4 — Rename files ### ───────────────────────────── echo "Renaming files..." @@ -79,37 +88,31 @@ done echo "Replacing content..." -# 5.1 henrov → user -echo "henrov → $USER_NAME..." if [ -d "$TARGET_DIR/generated" ]; then find "$TARGET_DIR/generated" -type f -exec sed -i "s/henrov/$USER_NAME/g" {} + fi -# 5.3 path replacement -echo "Path replacement..." find "$TARGET_DIR" -type f -exec grep -Iq . {} \; -print | while read -r file; do sed -i "s#~/Repos/nixos/Droidnix#~/Droidnix#g" "$file" || true -done - -# 5.4 traveldroid → hostname -echo "Traveldroid → $HOSTNAME..." -find "$TARGET_DIR" -type f -exec grep -Iq . {} \; -print | while read -r file; do sed -i "s/traveldroid/$HOSTNAME/g" "$file" || true done -# README.org block replacement README="$TARGET_DIR/README.org" if [ -f "$README" ]; then awk -v user="$USER_NAME" -v host="$HOSTNAME" ' BEGIN {inblock=0} + { if ($0 ~ /^\*\* =/) inblock=1 + if (inblock == 1) { gsub("henrov", user) gsub("traveldroid", host) } + print $0 + if ($0 ~ /^#\+END_SRC/) inblock=0 }' "$README" > "$README.tmp" && mv "$README.tmp" "$README" fi @@ -118,7 +121,7 @@ fi ### Step 6 — Hardware config ### ───────────────────────────── HOST_DIR="$TARGET_DIR/generated/hosts/$HOSTNAME" -echo "Hardware config --> $HOST_DIR" +echo "Hardware config --> $HOST_DIR" mkdir -p "$HOST_DIR" echo "Generating hardware configuration..." @@ -128,7 +131,7 @@ sudo nixos-generate-config --show-hardware-config > \ ### ───────────────────────────── ### Step 7 — Inject hardware into README.org ### ───────────────────────────── -echo "Inject $HOST_DIR/hardware-configuration.nix" + if [ -f "$README" ]; then awk -v file="$HOST_DIR/hardware-configuration.nix" ' BEGIN {inblock=0} @@ -156,7 +159,7 @@ fi ### ───────────────────────────── ### Step 8 — Build system ### ───────────────────────────── -echo "Building NixOS configuration... sudo nixos-rebuild switch --flake ".#$HOSTNAME"" +echo "Building NixOS configuration..." cd "$TARGET_DIR" sudo nixos-rebuild switch --flake ".#$HOSTNAME" @@ -164,6 +167,7 @@ sudo nixos-rebuild switch --flake ".#$HOSTNAME" ### Step 9 — Done ### ───────────────────────────── cat <