42 lines
1.2 KiB
Bash
Executable File
42 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Nomarchy Update Script
|
|
# 1. Updates the flake inputs in the repository
|
|
# 2. Applies system-wide NixOS changes
|
|
# 3. Applies user-level Home Manager changes
|
|
|
|
set -e
|
|
|
|
# Detect the repository location
|
|
if [ -f "/etc/nixos/flake.nix" ]; then
|
|
REPO_DIR="/etc/nixos"
|
|
elif [ -f "/etc/nomarchy/flake.nix" ]; then
|
|
REPO_DIR="/etc/nomarchy"
|
|
else
|
|
echo "Error: Nomarchy flake repository not found in /etc/nixos or /etc/nomarchy."
|
|
exit 1
|
|
fi
|
|
|
|
echo "--- Starting Nomarchy Update from $REPO_DIR ---"
|
|
|
|
# 1. Update Flake Lock
|
|
echo "Updating flake inputs..."
|
|
sudo nix flake update --flake "$REPO_DIR"
|
|
|
|
# 2. Rebuild System
|
|
echo "Applying system-level updates..."
|
|
sudo nixos-rebuild switch --flake "$REPO_DIR#default" --impure
|
|
|
|
# 3. Rebuild Home Environment
|
|
echo "Applying user-level updates..."
|
|
home-manager switch --flake "$REPO_DIR#default" --impure
|
|
|
|
# 4. Commit changes if it's a git repo
|
|
if [ -d "$REPO_DIR/.git" ]; then
|
|
echo "Committing update to local history..."
|
|
sudo git -C "$REPO_DIR" add flake.lock
|
|
sudo git -C "$REPO_DIR" commit -m "chore: update system (flake.lock)" || echo "No lockfile changes to commit."
|
|
fi
|
|
|
|
echo "--- Nomarchy Update Complete ---"
|