diff --git a/apps/rebuild/default.nix b/apps/rebuild/default.nix index 72503a3..21242c7 100644 --- a/apps/rebuild/default.nix +++ b/apps/rebuild/default.nix @@ -7,8 +7,6 @@ hostname, nix, nixos-rebuild-ng, - nix-output-monitor, - dix, ... }: @@ -28,7 +26,5 @@ writeShellApplication { hostname nix nixos-rebuild-ng - nix-output-monitor - dix ]; } diff --git a/apps/rebuild/rebuild.sh b/apps/rebuild/rebuild.sh index cb78314..752b9b7 100755 --- a/apps/rebuild/rebuild.sh +++ b/apps/rebuild/rebuild.sh @@ -11,11 +11,6 @@ UPDATE_INPUTS="" # Default list of inputs to update. Empty means ROLLBACK=0 # Default to not rollback SHOW_TRACE=0 # Default to not show detailed error messages -# Output functions -_status() { echo -e "\033[0;34m> $1\033[0m"; } -success() { echo -e "\033[0;32m$1\033[0m"; } -error() { echo -e "\033[0;31mError: $1\033[0m" >&2; exit 1; } - # Function to display the help message Help() { echo "Wrapper script for 'nixos-rebuild switch' and 'home-manager switch' commands." @@ -42,6 +37,12 @@ Help() { echo " -u, --user Specify the username (as in 'homeConfigurations.@'). Default: $HOME_USER" } +# Function to handle errors +error() { + echo "Error: $1" + exit 1 +} + # Function to rebuild NixOS configuration Rebuild_nixos() { local FLAKE="$FLAKE_PATH#$NIXOS_HOST" @@ -55,31 +56,20 @@ Rebuild_nixos() { [ -n "$BUILD_HOST" ] && CMD+=("--build-host" "$BUILD_HOST") if [ "$NIXOS_HOST" != "$(hostname)" ] && [ -z "$TARGET_HOST" ]; then TARGET_HOST="$NIXOS_HOST" - _status "Using '$TARGET_HOST' as target host." + echo "Using '$TARGET_HOST' as target host." fi [ -n "$TARGET_HOST" ] && CMD+=("--target-host" "$TARGET_HOST") - # Build config first so we can diff it - local BUILD_CMD=("nixos-rebuild" "build" "--flake" "$FLAKE") - [ "$SHOW_TRACE" = 1 ] && BUILD_CMD+=("--show-trace") - [ -n "$BUILD_HOST" ] && BUILD_CMD+=("--build-host" "$BUILD_HOST") - - if [ "$ROLLBACK" = 0 ]; then - _status "Building NixOS configuration '$FLAKE'..." - _status "Executing command: ${BUILD_CMD[*]}" - "${BUILD_CMD[@]}" |&nom || error "NixOS build failed" - _status "Package diff:" - dix /run/current-system result - rm result + # Rebuild NixOS configuration + if [ "$ROLLBACK" = 0 ]; then + echo "Rebuilding NixOS configuration '$FLAKE'..." else - _status "Rolling back to last NixOS generation..." + echo "Rolling back to last NixOS generation..." fi - _status "Switching to new NixOS configuration" - sudo -v - _status "Executing command: ${CMD[*]}" - "${CMD[@]}" |& nom || error "NixOS rebuild failed" - success "NixOS rebuild completed successfully." + echo "Executing command: ${CMD[*]}" + "${CMD[@]}" || error "NixOS rebuild failed" + echo "NixOS rebuild completed successfully." } # Function to rebuild Home Manager configuration @@ -101,29 +91,21 @@ Rebuild_home() { [ "$SHOW_TRACE" = 1 ] && CMD+=("--show-trace") fi - # Build config first so we can diff it - if [ "$ROLLBACK" = 0 ]; then - local BUILD_CMD=("home-manager" "build" "--flake" "$FLAKE") - [ "$SHOW_TRACE" = 1 ] && BUILD_CMD+=("--show-trace") - _status "Building Home Manager configuration '$FLAKE'..." - _status "Executing command: ${BUILD_CMD[*]}" - "${BUILD_CMD[@]}" |& nom || error "Home Manager build failed" - _status "Package diff:" - dix /run/current-system result - rm result + # Rebuild Home Manager configuration + if [ "$ROLLBACK" = 0 ]; then + echo "Rebuilding Home Manager configuration '$FLAKE'..." else - _status "Rolling back to last Home Manager generation..." + echo "Rolling back to last Home Manager generation..." fi - _status "Switching to new Home Manager configuration" - _status "Executing command: ${CMD[*]}" - "${CMD[@]}" |& nom || error "Home Manager rebuild failed" - success "Home Manager rebuild completed successfully." + echo "Executing command: ${CMD[*]}" + "${CMD[@]}" || error "Home Manager rebuild failed" + echo "Home Manager rebuild completed successfully." } -# Function to update flake repositories +# Function to Update flake repositories Update() { - _status "Updating flake inputs..." + echo "Updating flake inputs..." # Construct update command as an array local CMD=("nix" "flake" "update" "--flake" "$FLAKE_PATH") @@ -135,18 +117,17 @@ Update() { done fi - _status "Executing command: ${CMD[*]}" + echo "Executing command: ${CMD[*]}" "${CMD[@]}" || error "Failed to update flake repositories" - success "Flake repositories updated successfully." + echo "Flake repositories updated successfully." } # Parse command-line options if [[ -z "${1:-}" ]]; then - echo -e "\033[0;31mError: No command specified. Printing help page.\033[0m" >&2 + echo "Error: No command specified. Printing help page." Help exit 1 fi - COMMAND=$1 shift @@ -217,7 +198,9 @@ while [ $# -gt 0 ]; do fi ;; *) - error "Unknown option '$1'" + echo "Error: Unknown option '$1'" + Help + exit 1 ;; esac done @@ -244,10 +227,10 @@ fi [ "$UPDATE" = 1 ] && Update case "$COMMAND" in - nixos|os) + nixos) Rebuild_nixos ;; - home|hm) + home) Rebuild_home ;; all) @@ -255,6 +238,9 @@ case "$COMMAND" in Rebuild_home ;; *) - error "Unknown command '$COMMAND'" + echo "Error: Unknown command '$COMMAND'" + echo "Printing help page:" + Help + exit 1 ;; esac diff --git a/modules/shared/common/nix.nix b/modules/shared/common/nix.nix index 4d8e217..2d0daa3 100644 --- a/modules/shared/common/nix.nix +++ b/modules/shared/common/nix.nix @@ -32,8 +32,6 @@ in }; }; - nix.settings.warn-dirty = mkDefault false; - # fallback quickly if substituters are not available. nix.settings.connect-timeout = mkDefault 5; nix.settings.fallback = true;