diff --git a/lib/default.nix b/lib/default.nix index e0ebc4303..093ccd12d 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -43,8 +43,6 @@ lib.fix ( facts = import ./facts.nix { inherit lib; }; # flakes - flakes = clanLib.callLib ./flakes.nix { - clan-core = self; - }; + flakes = clanLib.callLib ./flakes.nix { }; } ) diff --git a/lib/flakes.nix b/lib/flakes.nix index cf74ac17a..43e87db46 100644 --- a/lib/flakes.nix +++ b/lib/flakes.nix @@ -1,16 +1,22 @@ { lib, - clan-core, ... }: { # A flake lock for offline use. # All flake inputs are locked to an existing store path mkOfflineFlakeLock = - flakePath: + flakeRef: + let + flake = + if lib.isAttrs flakeRef then + flakeRef + else + throw "Cannot handle flake of type ${lib.typeOf flakeRef} yet."; + flakePath = toString flake; flakeLock = lib.importJSON (flakePath + "/flake.lock"); - flakeInputs = builtins.removeAttrs clan-core.inputs [ "self" ]; + flakeInputs = builtins.removeAttrs flake.inputs [ "self" ]; inputsToPaths = flakeLock: flakeLock @@ -28,7 +34,7 @@ lastModified = # lol, nixpkgs has a different timestamp on the fs??? if name == "nixpkgs" then 0 else 1; - path = "${clan-core.inputs.${name}}"; + path = "${flake.inputs.${name}}"; type = "path"; }; } diff --git a/pkgs/clan-core-flake/flake-module.nix b/pkgs/clan-core-flake/flake-module.nix index 81f20e8d5..52b8a8b22 100644 --- a/pkgs/clan-core-flake/flake-module.nix +++ b/pkgs/clan-core-flake/flake-module.nix @@ -33,7 +33,7 @@ in export NIX_STORE_DIR=$HOME cp -r ${clanCore} $out chmod +w -R $out - cp ${mkOfflineFlakeLock clanCore} $out/flake.lock + cp ${mkOfflineFlakeLock self} $out/flake.lock nix flake lock $out --extra-experimental-features 'nix-command flakes' clanCoreHash=$(nix hash path ${clanCore} --extra-experimental-features 'nix-command') '';