Second version of installer: asking for sudo upfront
This commit is contained in:
@@ -2,6 +2,27 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
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
|
### Step 1 — Collect system identity
|
||||||
### ─────────────────────────────
|
### ─────────────────────────────
|
||||||
@@ -68,12 +89,10 @@ done
|
|||||||
### ─────────────────────────────
|
### ─────────────────────────────
|
||||||
echo "Replacing file contents..."
|
echo "Replacing file contents..."
|
||||||
|
|
||||||
# Helper: only text files
|
|
||||||
is_text() {
|
is_text() {
|
||||||
file --mime "$1" | grep -q text
|
file --mime "$1" | grep -q text
|
||||||
}
|
}
|
||||||
|
|
||||||
# 5.1 generated/*
|
|
||||||
if [ -d "$TARGET_DIR/generated" ]; then
|
if [ -d "$TARGET_DIR/generated" ]; then
|
||||||
find "$TARGET_DIR/generated" -type f | while read -r f; do
|
find "$TARGET_DIR/generated" -type f | while read -r f; do
|
||||||
is_text "$f" && sed -i "s/henrov/$USER_NAME/g" "$f"
|
is_text "$f" && sed -i "s/henrov/$USER_NAME/g" "$f"
|
||||||
@@ -82,7 +101,6 @@ fi
|
|||||||
|
|
||||||
README="$TARGET_DIR/README.org"
|
README="$TARGET_DIR/README.org"
|
||||||
|
|
||||||
# 5.2 + 5.6 (org blocks only)
|
|
||||||
if [ -f "$README" ]; then
|
if [ -f "$README" ]; then
|
||||||
awk -v user="$USER_NAME" -v host="$HOSTNAME_NAME" '
|
awk -v user="$USER_NAME" -v host="$HOSTNAME_NAME" '
|
||||||
BEGIN { inblock=0 }
|
BEGIN { inblock=0 }
|
||||||
@@ -97,7 +115,6 @@ if [ -f "$README" ]; then
|
|||||||
}' "$README" > "$README.tmp" && mv "$README.tmp" "$README"
|
}' "$README" > "$README.tmp" && mv "$README.tmp" "$README"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 5.3 + 5.4 global replacements
|
|
||||||
find "$TARGET_DIR" -type f | while read -r f; do
|
find "$TARGET_DIR" -type f | while read -r f; do
|
||||||
if is_text "$f"; then
|
if is_text "$f"; then
|
||||||
sed -i \
|
sed -i \
|
||||||
|
|||||||
Reference in New Issue
Block a user