| 
									
										
										
										
											2024-07-08 19:20:17 +01:00
										 |  |  | #!/usr/bin/env bash | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -o errexit | 
					
						
							|  |  |  | set -o nounset | 
					
						
							|  |  |  | set -o pipefail | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function check { | 
					
						
							|  |  |  |   nix flake check | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-25 08:03:59 +00:00
										 |  |  | function collect-garbage { | 
					
						
							|  |  |  |   nix-collect-garbage -d | 
					
						
							|  |  |  |   sudo nix-collect-garbage -d | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-23 13:17:10 +01:00
										 |  |  | function format { | 
					
						
							|  |  |  |   nix fmt flake.nix home hosts lib modules | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-08 19:20:17 +01:00
										 |  |  | function help { | 
					
						
							|  |  |  |   printf "%s <task> [args]\n\nTasks:\n" "$0" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   compgen -A function | grep -v "^_" | cat -n | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   printf "\nExtended help:\n  Each task has comments for general usage\n" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 08:13:46 +00:00
										 |  |  | function home-manager:build { | 
					
						
							|  |  |  |   _home build "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function home-manager:switch { | 
					
						
							|  |  |  |   _home switch "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-08 19:20:17 +01:00
										 |  |  | function nixos:build { | 
					
						
							|  |  |  |   _nixos build "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function nixos:switch { | 
					
						
							|  |  |  |   _nixos switch "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function nixos:test { | 
					
						
							|  |  |  |   _nixos test "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function update { | 
					
						
							|  |  |  |   nix flake update | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function _home { | 
					
						
							|  |  |  |   local command="$1" | 
					
						
							| 
									
										
										
										
											2024-11-26 08:13:46 +00:00
										 |  |  |   shift 1 | 
					
						
							| 
									
										
										
										
											2024-07-08 19:20:17 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   NIXPKGS_ALLOW_UNFREE=1 home-manager "$command" \ | 
					
						
							|  |  |  |     --extra-experimental-features flakes \ | 
					
						
							|  |  |  |     --extra-experimental-features nix-command \ | 
					
						
							| 
									
										
										
										
											2024-11-26 08:13:46 +00:00
										 |  |  |     --flake ".#$(whoami)@$(hostname)" \ | 
					
						
							| 
									
										
										
										
											2024-07-08 19:20:17 +01:00
										 |  |  |     --impure "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function _nixos { | 
					
						
							|  |  |  |   local command="$1" | 
					
						
							|  |  |  |   shift 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   sudo nixos-rebuild "$command" --flake . "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TIMEFORMAT=$'\nTask completed in %3lR' | 
					
						
							|  |  |  | time "${@:-help}" |