Second version of installer: asking for sudo upfront
This commit is contained in:
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user