Added ask for sudo

This commit is contained in:
2026-05-04 19:25:56 +02:00
parent 387bdc0f77
commit 3c4abe3bed
+21 -17
View File
@@ -1,6 +1,17 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail 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 ### Configuration
### ───────────────────────────── ### ─────────────────────────────
@@ -47,15 +58,13 @@ else
exit 1 exit 1
fi fi
echo "Extracting to $TMP_DIR/unzipped..." echo "Extracting..."
unzip -q "$TMP_DIR/main.zip" -d "$TMP_DIR/unzipped" 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/" cp -r "$TMP_DIR"/unzipped/*/Droidnix/* "$TARGET_DIR/"
### ───────────────────────────── ### ─────────────────────────────
### Step 4 — Rename files (deepest first) ### Step 4 — Rename files
### ───────────────────────────── ### ─────────────────────────────
echo "Renaming files..." echo "Renaming files..."
@@ -79,37 +88,31 @@ done
echo "Replacing content..." echo "Replacing content..."
# 5.1 henrov → user
echo "henrov → $USER_NAME..."
if [ -d "$TARGET_DIR/generated" ]; then if [ -d "$TARGET_DIR/generated" ]; then
find "$TARGET_DIR/generated" -type f -exec sed -i "s/henrov/$USER_NAME/g" {} + find "$TARGET_DIR/generated" -type f -exec sed -i "s/henrov/$USER_NAME/g" {} +
fi fi
# 5.3 path replacement
echo "Path replacement..."
find "$TARGET_DIR" -type f -exec grep -Iq . {} \; -print | while read -r file; do find "$TARGET_DIR" -type f -exec grep -Iq . {} \; -print | while read -r file; do
sed -i "s#~/Repos/nixos/Droidnix#~/Droidnix#g" "$file" || true 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 sed -i "s/traveldroid/$HOSTNAME/g" "$file" || true
done done
# README.org block replacement
README="$TARGET_DIR/README.org" README="$TARGET_DIR/README.org"
if [ -f "$README" ]; then if [ -f "$README" ]; then
awk -v user="$USER_NAME" -v host="$HOSTNAME" ' awk -v user="$USER_NAME" -v host="$HOSTNAME" '
BEGIN {inblock=0} BEGIN {inblock=0}
{ {
if ($0 ~ /^\*\* =/) inblock=1 if ($0 ~ /^\*\* =/) inblock=1
if (inblock == 1) { if (inblock == 1) {
gsub("henrov", user) gsub("henrov", user)
gsub("traveldroid", host) gsub("traveldroid", host)
} }
print $0 print $0
if ($0 ~ /^#\+END_SRC/) inblock=0 if ($0 ~ /^#\+END_SRC/) inblock=0
}' "$README" > "$README.tmp" && mv "$README.tmp" "$README" }' "$README" > "$README.tmp" && mv "$README.tmp" "$README"
fi fi
@@ -118,7 +121,7 @@ fi
### Step 6 — Hardware config ### Step 6 — Hardware config
### ───────────────────────────── ### ─────────────────────────────
HOST_DIR="$TARGET_DIR/generated/hosts/$HOSTNAME" HOST_DIR="$TARGET_DIR/generated/hosts/$HOSTNAME"
echo "Hardware config --> $HOST_DIR" echo "Hardware config --> $HOST_DIR"
mkdir -p "$HOST_DIR" mkdir -p "$HOST_DIR"
echo "Generating hardware configuration..." echo "Generating hardware configuration..."
@@ -128,7 +131,7 @@ sudo nixos-generate-config --show-hardware-config > \
### ───────────────────────────── ### ─────────────────────────────
### Step 7 — Inject hardware into README.org ### Step 7 — Inject hardware into README.org
### ───────────────────────────── ### ─────────────────────────────
echo "Inject $HOST_DIR/hardware-configuration.nix"
if [ -f "$README" ]; then if [ -f "$README" ]; then
awk -v file="$HOST_DIR/hardware-configuration.nix" ' awk -v file="$HOST_DIR/hardware-configuration.nix" '
BEGIN {inblock=0} BEGIN {inblock=0}
@@ -156,7 +159,7 @@ fi
### ───────────────────────────── ### ─────────────────────────────
### Step 8 — Build system ### Step 8 — Build system
### ───────────────────────────── ### ─────────────────────────────
echo "Building NixOS configuration... sudo nixos-rebuild switch --flake ".#$HOSTNAME"" echo "Building NixOS configuration..."
cd "$TARGET_DIR" cd "$TARGET_DIR"
sudo nixos-rebuild switch --flake ".#$HOSTNAME" sudo nixos-rebuild switch --flake ".#$HOSTNAME"
@@ -164,6 +167,7 @@ sudo nixos-rebuild switch --flake ".#$HOSTNAME"
### Step 9 — Done ### Step 9 — Done
### ───────────────────────────── ### ─────────────────────────────
cat <<EOF cat <<EOF
Installation complete. Please reboot your system. Installation complete. Please reboot your system.
After rebooting, any changes must be made in: After rebooting, any changes must be made in: