Added ask for sudo
This commit is contained in:
@@ -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 <<EOF
|
||||
|
||||
Installation complete. Please reboot your system.
|
||||
|
||||
After rebooting, any changes must be made in:
|
||||
|
||||
Reference in New Issue
Block a user