Added ask for sudo
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user