rebuild script use specified host from env with warnings
This commit is contained in:
3
.env.example
Normal file
3
.env.example
Normal 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
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Environment file
|
||||||
|
.env
|
@ -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
|
||||||
|
Reference in New Issue
Block a user