38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
defaultLocalType := if os() == "macos" { "darwin" } else { "nixos" }
|
|
defaultRemoteType := "nixos"
|
|
|
|
default:
|
|
@just --list
|
|
|
|
# Format the entire source tree
|
|
fmt:
|
|
treefmt
|
|
|
|
# Build a local machine
|
|
[group('build')]
|
|
build-local-machine target type=defaultLocalType:
|
|
nom build ".#{{type}}Configurations.{{target}}.config.system.build.toplevel"
|
|
|
|
# Build a remote machine
|
|
[group('build')]
|
|
build-remote-machine target type=defaultRemoteType:
|
|
nom build --eval-store auto \
|
|
--store 'ssh-ng://root@{{target}}' \
|
|
'.#{{type}}Configurations.{{target}}.config.system.build.toplevel'
|
|
|
|
# Deploy to a local machine
|
|
[group('deploy')]
|
|
deploy-local-machine target type=defaultLocalType: _git-pull (build-local-machine target type)
|
|
env TERM=xterm-256color {{type}}-rebuild switch --flake ".#{{target}}"
|
|
sync
|
|
attic push nifoc-systems /run/current-system
|
|
find ./.direnv -maxdepth 1 -name 'flake-profile-*' -type l -exec attic push nifoc-systems {} \;
|
|
|
|
# Deploy to a remote machine
|
|
[group('deploy')]
|
|
deploy-remote-machine target type=defaultRemoteType: _git-pull (build-remote-machine target type)
|
|
deploy --skip-checks '.#{{target}}'
|
|
ssh -t '{{target}}' 'attic push nifoc-systems /run/current-system'
|
|
|
|
_git-pull:
|
|
-git pull
|