refactor setup script to conditionally set hostname and rebuild NixOS only on NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 39s

This commit is contained in:
Menno van Leeuwen 2025-01-15 11:34:06 +01:00
parent 206cbfb564
commit 1d0ef3d31e
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE

View File

@ -377,19 +377,26 @@ prepare_hostname() {
log_error "Invalid hostname. Please enter a valid hostname:" log_error "Invalid hostname. Please enter a valid hostname:"
done done
if [ ! command -v nixos-version >/dev/null 2>&1 ]; then
log_info "Setting hostname to $hostname..."
sudo hostnamectl set-hostname "$hostname" || die "Failed to set hostname"
fi
if [ command -v nixos-version >/dev/null 2>&1 ]; then
if [ ! -f "$DOTFILES_DIR/config/nixos/hardware/$hostname.nix" ]; then if [ ! -f "$DOTFILES_DIR/config/nixos/hardware/$hostname.nix" ]; then
log_info "No hardware configuration found for $hostname." log_info "No hardware configuration found for $hostname."
create_hardware_config "$hostname" create_hardware_config "$hostname"
else else
log_success "Hardware configuration found for $hostname. Continuing setup..." log_success "Hardware configuration found for $hostname. Continuing setup..."
fi fi
fi
echo "$hostname" > "$hostname_file" || die "Failed to save hostname" echo "$hostname" > "$hostname_file" || die "Failed to save hostname"
log_success "Hostname set successfully." log_success "Hostname set successfully."
} }
warning_prompt() { warning_prompt() {
log_success "This script will set up your NixOS system using Menno's Dotfiles repository.\n" log_success "This script will set up your machine using Menno's Dotfiles repository.\n"
log_error "Please ensure you have a backup of your data before proceeding." log_error "Please ensure you have a backup of your data before proceeding."
log_error "This script will modify system files and may require sudo permissions.\n" log_error "This script will modify system files and may require sudo permissions.\n"
log_info "This script works best on a fresh NixOS installation." log_info "This script works best on a fresh NixOS installation."
@ -428,10 +435,12 @@ main() {
local hostname local hostname
hostname=$(cat "$HOME/.hostname") || die "Failed to read hostname" hostname=$(cat "$HOME/.hostname") || die "Failed to read hostname"
# Rebuild NixOS # Rebuild NixOS but only on NixOS systems
if command -v nixos-version >/dev/null 2>&1; then
cd "$DOTFILES_DIR/config/nixos" || die "Failed to change to nixos config directory" cd "$DOTFILES_DIR/config/nixos" || die "Failed to change to nixos config directory"
sudo nixos-rebuild switch --flake ".#$hostname" --impure || \ sudo nixos-rebuild switch --flake ".#$hostname" --impure || \
die "Failed to rebuild NixOS" die "Failed to rebuild NixOS"
fi
# Rebuild Home Manager # Rebuild Home Manager
cd "$DOTFILES_DIR/config/home-manager" || die "Failed to change to home-manager config directory" cd "$DOTFILES_DIR/config/home-manager" || die "Failed to change to home-manager config directory"