lib: init flakes.nix
This commit creates flakes.nix, which is a library containing functions which relate to interacting with flakes. It also moves related functions from trivial.nix into it.
This commit is contained in:
parent
c190b08bb7
commit
cad8bbe589
3 changed files with 27 additions and 17 deletions
|
@ -11,6 +11,9 @@ let
|
|||
callLibs = file: import file { lib = self; };
|
||||
in {
|
||||
|
||||
# interacting with flakes
|
||||
flakes = callLibs ./flakes.nix;
|
||||
|
||||
# often used, or depending on very little
|
||||
trivial = callLibs ./trivial.nix;
|
||||
fixedPoints = callLibs ./fixed-points.nix;
|
||||
|
@ -59,12 +62,13 @@ let
|
|||
# linux kernel configuration
|
||||
kernel = callLibs ./kernel.nix;
|
||||
|
||||
inherit (self.flakes) callLocklessFlake;
|
||||
inherit (builtins) add addErrorContext attrNames concatLists
|
||||
deepSeq elem elemAt filter genericClosure genList getAttr
|
||||
hasAttr head isAttrs isBool isInt isList isString length
|
||||
lessThan listToAttrs pathExists readFile replaceStrings seq
|
||||
stringLength sub substring tail trace;
|
||||
inherit (self.trivial) id callLocklessFlake const pipe concat or and bitAnd bitOr bitXor
|
||||
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
|
||||
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
|
||||
importJSON importTOML warn warnIf warnIfNot throwIf throwIfNot checkListOfEnum
|
||||
info showWarnings nixpkgsVersion version isInOldestRelease
|
||||
|
|
22
lib/flakes.nix
Normal file
22
lib/flakes.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ lib }:
|
||||
|
||||
rec {
|
||||
|
||||
/* imports a flake.nix without acknowledging its lock file, useful for
|
||||
referencing subflakes from a parent flake. The second argument allows
|
||||
specifying the inputs of this flake.
|
||||
|
||||
Example:
|
||||
callLocklessFlake {
|
||||
path = ./directoryContainingFlake;
|
||||
inputs = { inherit nixpkgs; };
|
||||
}
|
||||
*/
|
||||
callLocklessFlake = { path, inputs ? { } }:
|
||||
let
|
||||
self = { outPath = path; } //
|
||||
((import (path + "/flake.nix")).outputs (inputs // { self = self; }));
|
||||
in
|
||||
self;
|
||||
|
||||
}
|
|
@ -13,22 +13,6 @@ rec {
|
|||
# The value to return
|
||||
x: x;
|
||||
|
||||
/* imports a flake.nix without acknowledging its lock file, useful for
|
||||
referencing subflakes from a parent flake. The second argument allows
|
||||
specifying the inputs of this flake.
|
||||
|
||||
Example:
|
||||
callLocklessFlake {
|
||||
path = ./directoryContainingFlake;
|
||||
inputs = { inherit nixpkgs; };
|
||||
}
|
||||
*/
|
||||
callLocklessFlake = { path, inputs ? {} }: let
|
||||
self = {outPath = path;} //
|
||||
((import (path + "/flake.nix")).outputs (inputs // {self = self;}));
|
||||
in
|
||||
self;
|
||||
|
||||
/* The constant function
|
||||
|
||||
Ignores the second argument. If called with only one argument,
|
||||
|
|
Loading…
Reference in a new issue