aboutsummaryrefslogtreecommitdiffstats
path: root/modules/scripts/nix-update/script.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules/scripts/nix-update/script.sh')
-rw-r--r--modules/scripts/nix-update/script.sh122
1 files changed, 0 insertions, 122 deletions
diff --git a/modules/scripts/nix-update/script.sh b/modules/scripts/nix-update/script.sh
deleted file mode 100644
index 0f1c0c1..0000000
--- a/modules/scripts/nix-update/script.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-HM_DIR="$HOME/.config/home-manager"
-NIXOS_DIR="/etc/nixos"
-ONLY_FLAKE=false
-ONLY_SWITCH=false
-TARGET=""
-
-usage() {
- echo "Usage: nix-update <home-manager|nixos|both> [--only-flake|--only-switch]"
- echo ""
- echo "Options:"
- echo " home-manager Update and switch home-manager configuration"
- echo " nixos Update and switch NixOS configuration"
- echo " both Update and switch both configurations"
- echo ""
- echo "Flags:"
- echo " --only-flake Only run nix flake update, skip switch commands"
- echo " --only-switch Only run switch commands, skip nix flake update"
- exit 1
-}
-
-parse_args() {
- while [[ $# -gt 0 ]]; do
- case "$1" in
- home-manager | nixos | both)
- if [[ -n "$TARGET" ]]; then
- echo "Error: only one target allowed"
- usage
- fi
- TARGET="$1"
- shift
- ;;
- --only-flake)
- ONLY_FLAKE=true
- shift
- ;;
- --only-switch)
- ONLY_SWITCH=true
- shift
- ;;
- -h | --help)
- usage
- ;;
- *)
- echo "Error: unknown option '$1'"
- usage
- ;;
- esac
- done
-
- if [[ -z "$TARGET" ]]; then
- echo "Error: no target specified"
- usage
- fi
-}
-
-update_home_manager() {
- echo "==> Updating home-manager..."
- cd "$HM_DIR"
-
- echo " Staging modules/private..."
- git add modules/private -f
-
- if [[ "$ONLY_SWITCH" == false ]]; then
- echo " Running nix flake update..."
- nix flake update
- fi
-
- if [[ "$ONLY_FLAKE" == false ]]; then
- echo " Running home-manager switch..."
- home-manager switch --flake "$HM_DIR#arpit"
- fi
-
- echo " Unstaging modules/private..."
- for f in modules/private/*.nix; do
- [[ "$f" == *.example.nix ]] || git rm --cached "$f"
- done
-
- echo "==> home-manager update complete"
-}
-
-update_nixos() {
- echo "==> Updating NixOS..."
- sudo -v
- cd "$NIXOS_DIR"
-
- echo " Staging hardware-configuration.nix..."
- git add hardware-configuration.nix -f
-
- if [[ "$ONLY_SWITCH" == false ]]; then
- echo " Running nix flake update..."
- nix flake update
- fi
-
- if [[ "$ONLY_FLAKE" == false ]]; then
- echo " Running nixos-rebuild switch..."
- sudo nixos-rebuild switch
- fi
-
- echo " Unstaging hardware-configuration.nix..."
- git rm --cached hardware-configuration.nix
-
- echo "==> NixOS update complete"
-}
-
-parse_args "$@"
-
-case "$TARGET" in
- home-manager)
- update_home_manager
- ;;
- nixos)
- update_nixos
- ;;
- both)
- update_nixos
- update_home_manager
- ;;
-esac