adds sudo handling for file backups and improves symlink setup in setup.sh
This commit is contained in:
32
setup.sh
32
setup.sh
@ -51,9 +51,15 @@ confirm_symlink() {
|
|||||||
|
|
||||||
backup_file() {
|
backup_file() {
|
||||||
local file="$1"
|
local file="$1"
|
||||||
|
local need_sudo="$2"
|
||||||
|
|
||||||
if [ -f "$file" ]; then
|
if [ -f "$file" ]; then
|
||||||
log_info "Backing up $file to $file.bak..."
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,7 +168,8 @@ update_nixos_flake() {
|
|||||||
isWorkstation = $isWorkstation;
|
isWorkstation = $isWorkstation;
|
||||||
isServer = $isServer;
|
isServer = $isServer;
|
||||||
};
|
};
|
||||||
};"
|
};
|
||||||
|
"
|
||||||
|
|
||||||
# Create temporary file
|
# Create temporary file
|
||||||
local temp_file=$(mktemp)
|
local temp_file=$(mktemp)
|
||||||
@ -209,7 +216,8 @@ update_home_manager_flake() {
|
|||||||
isServer = $isServer;
|
isServer = $isServer;
|
||||||
hostname = \"$hostname\";
|
hostname = \"$hostname\";
|
||||||
};
|
};
|
||||||
};"
|
};
|
||||||
|
"
|
||||||
|
|
||||||
# Create temporary file
|
# Create temporary file
|
||||||
local temp_file=$(mktemp)
|
local temp_file=$(mktemp)
|
||||||
@ -257,13 +265,10 @@ install_nix() {
|
|||||||
setup_symlinks() {
|
setup_symlinks() {
|
||||||
log_info "Setting up symlinks..."
|
log_info "Setting up symlinks..."
|
||||||
|
|
||||||
# Backup and create symlinks
|
# Backup and create symlinks for user files
|
||||||
backup_file "$HOME/.bashrc"
|
backup_file "$HOME/.bashrc"
|
||||||
backup_file "$HOME/.profile"
|
backup_file "$HOME/.profile"
|
||||||
|
|
||||||
# Create .config/ if it doesn't exist
|
|
||||||
mkdir -p "$HOME/.config"
|
|
||||||
|
|
||||||
if [ -d "$HOME/.config/home-manager" ]; then
|
if [ -d "$HOME/.config/home-manager" ]; then
|
||||||
log_info "Backing up ~/.config/home-manager to ~/.config/home-manager.bak..."
|
log_info "Backing up ~/.config/home-manager to ~/.config/home-manager.bak..."
|
||||||
mv "$HOME/.config/home-manager" "$HOME/.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" || \
|
ln -s "$DOTFILES_DIR/config/home-manager" "$HOME/.config/home-manager" || \
|
||||||
die "Failed to create home-manager symlink"
|
die "Failed to create home-manager symlink"
|
||||||
|
|
||||||
|
# Handle NixOS configuration with proper sudo permissions
|
||||||
if [ -d "/etc/nixos" ]; then
|
if [ -d "/etc/nixos" ]; then
|
||||||
backup_file "/etc/nixos/configuration.nix"
|
if [ -f "/etc/nixos/configuration.nix" ]; then
|
||||||
fi
|
backup_file "/etc/nixos/configuration.nix" true
|
||||||
|
fi
|
||||||
|
|
||||||
log_info "Linking /etc/nixos/configuration.nix to $DOTFILES_DIR/config/nixos/configuration.nix..."
|
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" || \
|
sudo ln -s "$DOTFILES_DIR/config/nixos/configuration.nix" "/etc/nixos/configuration.nix" || \
|
||||||
die "Failed to create nixos configuration symlink"
|
die "Failed to create nixos configuration symlink"
|
||||||
|
fi
|
||||||
|
|
||||||
# Verify symlinks
|
# Verify symlinks
|
||||||
confirm_symlink "$HOME/.config/home-manager" "Failed to set up home-manager symlink"
|
confirm_symlink "$HOME/.config/home-manager" "Failed to set up home-manager symlink"
|
||||||
|
Reference in New Issue
Block a user