From 4926ae8cc0e7165974904252f7b20121501a1e12 Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Fri, 8 Nov 2024 14:35:33 +0100 Subject: [PATCH] adds sudo handling for file backups and improves symlink setup in setup.sh --- setup.sh | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/setup.sh b/setup.sh index c7a3ba5..2fe59e5 100755 --- a/setup.sh +++ b/setup.sh @@ -51,9 +51,15 @@ confirm_symlink() { backup_file() { local file="$1" + local need_sudo="$2" + if [ -f "$file" ]; then log_info "Backing up $file to $file.bak..." - mv "$file" "$file.bak" || die "Failed to backup $file" + if [ "$need_sudo" = "true" ]; then + sudo mv "$file" "$file.bak" || die "Failed to backup $file (sudo)" + else + mv "$file" "$file.bak" || die "Failed to backup $file" + fi fi } @@ -162,7 +168,8 @@ update_nixos_flake() { isWorkstation = $isWorkstation; isServer = $isServer; }; - };" + }; + " # Create temporary file local temp_file=$(mktemp) @@ -209,7 +216,8 @@ update_home_manager_flake() { isServer = $isServer; hostname = \"$hostname\"; }; - };" + }; + " # Create temporary file local temp_file=$(mktemp) @@ -257,13 +265,10 @@ install_nix() { setup_symlinks() { log_info "Setting up symlinks..." - # Backup and create symlinks + # Backup and create symlinks for user files backup_file "$HOME/.bashrc" backup_file "$HOME/.profile" - # Create .config/ if it doesn't exist - mkdir -p "$HOME/.config" - if [ -d "$HOME/.config/home-manager" ]; then log_info "Backing up ~/.config/home-manager to ~/.config/home-manager.bak..." mv "$HOME/.config/home-manager" "$HOME/.config/home-manager.bak" || \ @@ -274,13 +279,16 @@ setup_symlinks() { ln -s "$DOTFILES_DIR/config/home-manager" "$HOME/.config/home-manager" || \ die "Failed to create home-manager symlink" + # Handle NixOS configuration with proper sudo permissions if [ -d "/etc/nixos" ]; then - backup_file "/etc/nixos/configuration.nix" - fi + if [ -f "/etc/nixos/configuration.nix" ]; then + backup_file "/etc/nixos/configuration.nix" true + fi - log_info "Linking /etc/nixos/configuration.nix to $DOTFILES_DIR/config/nixos/configuration.nix..." - sudo ln -s "$DOTFILES_DIR/config/nixos/configuration.nix" "/etc/nixos/configuration.nix" || \ - die "Failed to create nixos configuration symlink" + log_info "Linking /etc/nixos/configuration.nix to $DOTFILES_DIR/config/nixos/configuration.nix..." + sudo ln -s "$DOTFILES_DIR/config/nixos/configuration.nix" "/etc/nixos/configuration.nix" || \ + die "Failed to create nixos configuration symlink" + fi # Verify symlinks confirm_symlink "$HOME/.config/home-manager" "Failed to set up home-manager symlink"