SYSTEM := "$(echo $HOSTNAME)" # Print this list default: @just --list # Clean up build artifacts clean: #!/usr/bin/env bash set -euo pipefail echo "Cleaning build artifacts" if [ -d result ]; then echo "Removing result directory..." rm ./result fi if ls *.qcow2 1> /dev/null 2>&1; then echo "Removing virtual disks..." rm ./*.qcow2 fi echo "Done" # Output what derivations will be built out TYPE SYSTEM="desktop": #!/usr/bin/env bash set -euo pipefail case "{{TYPE}}" in "nix") if [ "{{SYSTEM}}" = "desktop" ] || \ [ "{{SYSTEM}}" = "server" ] || \ [ "{{SYSTEM}}" = "wsl" ] || \ [ "{{SYSTEM}}" = "vm" ] || \ [ "{{SYSTEM}}" = "laptop" ] then echo "Outputting derivations to be built for NixOS config - {{SYSTEM}}..." nix build --dry-run .#nixosConfigurations."{{SYSTEM}}".config.system.build.toplevel -L exit 0 else cat <> Switching to next generation ->>\033[0m" @sudo nixos-rebuild switch --flake .#{{SYSTEM}} # Rollback to previous generation rollback SYSTEM="nixos": #!/usr/bin/env bash set -euo pipefail if [ {{SYSTEM}} = "nixos" ]; then sudo nixos-rebuild switch --rollback fi # NixOS-rebuild boot for the current system boot: @echo -e "\033[34m->> Reboot to new generation ->>\033[0m" @echo "Switching to next generation on reboot" @sudo nixos-rebuild boot --flake .#{{SYSTEM}} # Commit all changes and push to upstream gh COMMIT_MESSAGE: #!/usr/bin/env bash set -euo pipefail git add -A git commit -m "{{COMMIT_MESSAGE}}" git push # Fetch resources and compute sha256 hash hash URL: #!/usr/bin/env bash set -euo pipefail if [[ "{{URL}}" =~ \.(tar(\.gz)?|tgz|gz|zip)$ ]]; then CONTENTS=$(nix-prefetch-url --unpack {{URL}}) else CONTENTS=$(nix-prefetch-url {{URL}}) fi HASH=$(nix hash convert --hash-algo sha256 "$CONTENTS") echo -e "\033[32m$HASH\033[0m"