.files/Justfile

46 lines
1.7 KiB
Makefile

os host action:
#!/usr/bin/env bash
set -euo pipefail
nixpkgs=$(nix-instantiate --eval -E "let sources = import ./nix/sources.nix {}; in sources.nixpkgs.outPath" | jq -r .)
sudo nixos-rebuild {{ action }} \
-I nixpkgs=${nixpkgs} \
-I nixos-config=./nix/configurations/{{ host }}.nix \
--fast \
--file ./default.nix \
--attr "nixosConfigurations.{{ host }}"
install host:
#!/usr/bin/env bash
set -euo pipefail
nixpkgs=$(nix-instantiate --eval -E "let sources = import ./nix/sources.nix {}; in sources.nixpkgs.outPath" | jq -r .)
sudo nixos-install \
-I nixpkgs=${nixpkgs} \
-I nixos-config=./nix/configurations/{{ host }}.nix \
--file ./default.nix \
--attr "nixosConfigurations.{{ host }}"
env name action profilePath="~/.environments":
#!/usr/bin/env bash
set -euo pipefail
# 1) realize the buildEnv derivation
# 2) set the environment to it
drv=$(nix-build -E "
let sources = import ./nix/sources.nix {};
pkgs = import sources.nixpkgs {
overlays = [
(import ./nix/overlays)
(import ./nix/overlays/packages.nix)
(import ./nix/overlays/packagesStable.nix)
];
};
in pkgs.callPackage ./nix/environments/{{ name }}.nix {}
")
mkdir -p {{ profilePath }}
nix-env --{{ action }} "$drv" --profile {{ profilePath }}"/{{ name }}"
update:
niv update nixpkgs
niv update nur