shell.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | with builtins;
let
sources = import ./nix/sources.nix;
sourcesJSON = fromJSON (readFile ./nix/sources.json);
nixpkgs = sources.nixpkgs;
pkgs = import nixpkgs { };
inherit (pkgs.lib) path attrsets;
mkPathable = v: toString (
if
path.subpath.isValid v
then
path.append ./. v
else
v
);
nixPath = concatStringsSep ":" (
attrsets.mapAttrsToList
(k: v: "${k}=${mkPathable (getAttr "outPath" v)}")
(intersectAttrs sourcesJSON sources)
);
in
pkgs.mkShell
{
name = "nixfiles-shell";
buildInputs = with pkgs; [
niv
deploy-rs
(pkgs.callPackage "${sources.agenix}/pkgs/agenix.nix" { })
(import sources.home-manager { inherit pkgs; }).home-manager
];
shellHook = ''
export NIX_PATH="${nixPath}";
'';
}
|