lib: mkOfflineFlakeLock init
copied from the clan-core-flake module I plan to re-use this function to improve the clan test framework to allow cli execution
This commit is contained in:
@@ -1,47 +1,15 @@
|
||||
{ self, inputs, ... }:
|
||||
{ self, ... }:
|
||||
let
|
||||
inherit (self.clanLib.flakes)
|
||||
mkOfflineFlakeLock
|
||||
;
|
||||
in
|
||||
{
|
||||
perSystem =
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
# A flake lock for offline use.
|
||||
# All flake inputs are locked to an existing store path
|
||||
clanCoreLockFile =
|
||||
clanCore:
|
||||
let
|
||||
flakeLock = lib.importJSON (clanCore + "/flake.lock");
|
||||
flakeInputs = builtins.removeAttrs inputs [ "self" ];
|
||||
flakeLockVendoredDeps =
|
||||
flakeLock:
|
||||
flakeLock
|
||||
// {
|
||||
nodes =
|
||||
flakeLock.nodes
|
||||
// (lib.flip lib.mapAttrs flakeInputs (
|
||||
name: _:
|
||||
# remove follows and let 'nix flake lock' re-compute it later
|
||||
# (lib.removeAttrs flakeLock.nodes.${name} ["inputs"])
|
||||
flakeLock.nodes.${name}
|
||||
// {
|
||||
locked = {
|
||||
inherit (flakeLock.nodes.${name}.locked) narHash;
|
||||
lastModified =
|
||||
# lol, nixpkgs has a different timestamp on the fs???
|
||||
if name == "nixpkgs" then 0 else 1;
|
||||
path = "${inputs.${name}}";
|
||||
type = "path";
|
||||
};
|
||||
}
|
||||
));
|
||||
};
|
||||
clanCoreLock = flakeLockVendoredDeps flakeLock;
|
||||
clanCoreLockFile = builtins.toFile "clan-core-flake.lock" (builtins.toJSON clanCoreLock);
|
||||
in
|
||||
clanCoreLockFile;
|
||||
in
|
||||
{
|
||||
packages.clan-core-flake =
|
||||
let
|
||||
@@ -65,7 +33,7 @@
|
||||
export NIX_STORE_DIR=$HOME
|
||||
cp -r ${clanCore} $out
|
||||
chmod +w -R $out
|
||||
cp ${clanCoreLockFile clanCore} $out/flake.lock
|
||||
cp ${mkOfflineFlakeLock clanCore} $out/flake.lock
|
||||
nix flake lock $out --extra-experimental-features 'nix-command flakes'
|
||||
clanCoreHash=$(nix hash path ${clanCore} --extra-experimental-features 'nix-command')
|
||||
'';
|
||||
|
||||
Reference in New Issue
Block a user