refactor: remove NixOS specific configuration and update installation messages for broader compatibility
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
This commit is contained in:
parent
bfea159a0f
commit
7a39c2c962
76
setup.sh
76
setup.sh
@ -81,65 +81,6 @@ validate_hostname() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
update_nixos_flake() {
|
|
||||||
local hostname="$1"
|
|
||||||
local isServer="$2"
|
|
||||||
local isWorkstation="$3"
|
|
||||||
local flake_file="$DOTFILES_DIR/config/nixos/flake.nix"
|
|
||||||
|
|
||||||
# Determine which common module to use
|
|
||||||
local common_module="./common/workstation.nix"
|
|
||||||
if [ "$isServer" = "true" ]; then
|
|
||||||
common_module="./common/server.nix"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create new configuration entry
|
|
||||||
local new_config=" \"$hostname\" = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
modules = [
|
|
||||||
./hardware/$hostname.nix
|
|
||||||
$common_module
|
|
||||||
./configuration.nix
|
|
||||||
];
|
|
||||||
specialArgs = {
|
|
||||||
inherit pkgs-unstable;
|
|
||||||
isWorkstation = $isWorkstation;
|
|
||||||
isServer = $isServer;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"
|
|
||||||
|
|
||||||
# Create temporary file
|
|
||||||
local temp_file=$(mktemp)
|
|
||||||
|
|
||||||
# Find the line number where nixosConfigurations = { appears
|
|
||||||
local config_line=$(grep -n "nixosConfigurations = {" "$flake_file" | cut -d: -f1)
|
|
||||||
|
|
||||||
if [ -z "$config_line" ]; then
|
|
||||||
rm "$temp_file"
|
|
||||||
die "Could not find nixosConfigurations in flake.nix"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy the file up to the line after nixosConfigurations = {
|
|
||||||
head -n "$config_line" "$flake_file" > "$temp_file"
|
|
||||||
|
|
||||||
# Add the new configuration
|
|
||||||
echo "$new_config" >> "$temp_file"
|
|
||||||
|
|
||||||
# Add the rest of the file starting from the line after nixosConfigurations = {
|
|
||||||
tail -n +"$((config_line + 1))" "$flake_file" >> "$temp_file"
|
|
||||||
|
|
||||||
# Validate the new file
|
|
||||||
if ! nix-shell -p nixfmt --run "nixfmt $temp_file"; then
|
|
||||||
rm "$temp_file"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Replace original file
|
|
||||||
mv "$temp_file" "$flake_file" || return 1
|
|
||||||
log_success "NixOS Flake configuration added successfully."
|
|
||||||
}
|
|
||||||
|
|
||||||
update_home_manager_flake() {
|
update_home_manager_flake() {
|
||||||
local hostname="$1"
|
local hostname="$1"
|
||||||
local isServer="$2"
|
local isServer="$2"
|
||||||
@ -190,11 +131,11 @@ update_home_manager_flake() {
|
|||||||
|
|
||||||
install_nix() {
|
install_nix() {
|
||||||
if command -v nix-channel >/dev/null 2>&1; then
|
if command -v nix-channel >/dev/null 2>&1; then
|
||||||
log_success "Detected NixOS, skipping Nix setup."
|
log_success "Detected Nix, skipping Nix setup."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_info "NixOS not detected, installing Nix..."
|
log_info "Nix not detected, installing Nix..."
|
||||||
if ! sh <(curl -L https://nixos.org/nix/install) --daemon; then
|
if ! sh <(curl -L https://nixos.org/nix/install) --daemon; then
|
||||||
die "Failed to install Nix"
|
die "Failed to install Nix"
|
||||||
fi
|
fi
|
||||||
@ -221,17 +162,6 @@ 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 [ -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"
|
|
||||||
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"
|
||||||
log_success "Symlinks set up successfully."
|
log_success "Symlinks set up successfully."
|
||||||
@ -298,7 +228,7 @@ warning_prompt() {
|
|||||||
log_success "This script will set up your machine 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/Fedora installation."
|
log_info "This script works best on a fresh Fedora, Ubuntu or Arch Linux installation."
|
||||||
log_info "Type 'continue' to continue or Ctrl+C to exit."
|
log_info "Type 'continue' to continue or Ctrl+C to exit."
|
||||||
read -r -p "> " continue < /dev/tty
|
read -r -p "> " continue < /dev/tty
|
||||||
if [ "$continue" != "continue" ]; then
|
if [ "$continue" != "continue" ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user