rebuild script use specified host from env with warnings

This commit is contained in:
2025-06-03 18:06:38 +02:00
parent 617715d28f
commit 44dc0edf96
3 changed files with 33 additions and 1 deletions

3
.env.example Normal file
View File

@ -0,0 +1,3 @@
# Copy this file to .env and set your host
# Available hosts: wildfire, drought,
NIXOS_HOST=wildfire

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# Environment file
.env

View File

@ -1,10 +1,37 @@
#!/bin/bash #!/bin/bash
# Source .env file
if [ -f ".env" ]; then
source .env
else
echo "Error: No .env file found. Copy example.env to .env and set your NIXOS_HOST"
exit 1
fi
if [ -z "$NIXOS_HOST" ]; then
echo "Error: NIXOS_HOST not set in .env file"
exit 1
fi
# Validate that the host configuration exists
AVAILABLE_HOSTS=$(nix flake show --json 2>/dev/null | jq -r '.nixosConfigurations | keys[]' 2>/dev/null)
if [ $? -ne 0 ] || [ -z "$AVAILABLE_HOSTS" ]; then
echo "Warning: Could not validate host configuration. Proceeding anyway..."
else
if ! echo "$AVAILABLE_HOSTS" | grep -q "^$NIXOS_HOST$"; then
echo "Error: Host '$NIXOS_HOST' not found in flake.nix"
echo "Available hosts: $(echo $AVAILABLE_HOSTS | tr '\n' ' ')"
exit 1
fi
fi
echo "Building configuration for host: $NIXOS_HOST"
# First, run a check to see if the flake is valid # First, run a check to see if the flake is valid
nix flake check nix flake check
# Rebuild the system # Rebuild the system
sudo nixos-rebuild switch --flake ./#default sudo nixos-rebuild switch --flake ./#$NIXOS_HOST
# Clean up old generations older than 180 days # Clean up old generations older than 180 days
sudo nix-collect-garbage --delete-older-than 180d sudo nix-collect-garbage --delete-older-than 180d