#!/usr/bin/env bash set -o errexit set -o nounset set -o pipefail function check { nix flake check } function collect-garbage { nix-collect-garbage -d sudo nix-collect-garbage -d } function format { nix fmt flake.nix home hosts lib modules } function help { printf "%s [args]\n\nTasks:\n" "$0" compgen -A function | grep -v "^_" | cat -n printf "\nExtended help:\n Each task has comments for general usage\n" } function nixos:build { _nixos build "$@" } function nixos:switch { _nixos switch "$@" } function nixos:test { _nixos test "$@" } function update { nix flake update } function wsl:build { _home build wsl2 "$@" } function wsl:switch { _home switch wsl2 "$@" } function _home { local command="$1" local flake="$2" shift 2 NIXPKGS_ALLOW_UNFREE=1 home-manager "$command" \ --extra-experimental-features flakes \ --extra-experimental-features nix-command \ --flake ".#$flake" \ --impure "$@" } function _nixos { local command="$1" shift 1 sudo nixos-rebuild "$command" --flake . "$@" } TIMEFORMAT=$'\nTask completed in %3lR' time "${@:-help}"