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) ]; }; in pkgs.callPackage ./nix/environments/{{ name }}.nix {} ") mkdir -p {{ profilePath }} nix-env --{{ action }} "$drv" --profile {{ profilePath }}"/{{ name }}" update: niv update nixpkgs niv update nur