From 59fc5e5e1035ac3aebe45f1369c48a8a9d7d1ed9 Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Tue, 11 Mar 2025 10:44:57 +0100 Subject: [PATCH] feat: request sudo credentials upfront to avoid interruptions during setup --- setup.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/setup.sh b/setup.sh index 7c5bbfb..8802ccd 100755 --- a/setup.sh +++ b/setup.sh @@ -37,6 +37,21 @@ die() { exit 1 } +# Request sudo credentials upfront +request_sudo() { + log_info "Requesting sudo privileges to avoid interruptions later..." + sudo -v || die "Failed to obtain sudo privileges" + + # Keep sudo credentials refreshed in the background + (while true; do sudo -v; sleep 50; done) & + SUDO_KEEPALIVE_PID=$! + + # Ensure we kill the keepalive process when the script exits + trap 'kill $SUDO_KEEPALIVE_PID 2>/dev/null || true' EXIT + + log_success "Sudo privileges obtained." +} + # Ensure we're running interactively ensure_interactive() { # If stdin is not a terminal, reconnect stdin to /dev/tty @@ -369,6 +384,9 @@ main() { die "Hostname is required as the first argument. Usage: $0 [--continue]" fi + # Request sudo credentials upfront + request_sudo + # Clone dotfiles if needed if [ ! -d "$DOTFILES_PATH" ]; then log_info "Cloning dotfiles repo..."