mirror of
https://github.com/mjallen18/snowfall-lib.git
synced 2026-04-18 09:05:58 -05:00
refactor(internal): add create-simple-derivations helper
This commit is contained in:
@@ -12,6 +12,8 @@ let
|
|||||||
isFunction
|
isFunction
|
||||||
;
|
;
|
||||||
|
|
||||||
|
inherit (core-inputs.flake-utils-plus.lib) filterPackages;
|
||||||
|
|
||||||
core-inputs-libs = snowfall-lib.flake.get-libs (snowfall-lib.flake.without-self core-inputs);
|
core-inputs-libs = snowfall-lib.flake.get-libs (snowfall-lib.flake.without-self core-inputs);
|
||||||
user-inputs-libs = snowfall-lib.flake.get-libs (snowfall-lib.flake.without-self user-inputs);
|
user-inputs-libs = snowfall-lib.flake.get-libs (snowfall-lib.flake.without-self user-inputs);
|
||||||
|
|
||||||
@@ -63,5 +65,37 @@ in
|
|||||||
{
|
{
|
||||||
internal = {
|
internal = {
|
||||||
inherit system-lib user-lib;
|
inherit system-lib user-lib;
|
||||||
|
|
||||||
|
create-simple-derivations = {
|
||||||
|
type,
|
||||||
|
channels,
|
||||||
|
src ? snowfall-lib.fs.get-snowfall-file type,
|
||||||
|
pkgs ? channels.nixpkgs,
|
||||||
|
overrides ? {},
|
||||||
|
alias ? {},
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
user-items = snowfall-lib.fs.get-default-nix-files-recursive src;
|
||||||
|
|
||||||
|
create-metadata = item: {
|
||||||
|
name = snowfall-lib.path.get-output-name item;
|
||||||
|
drv = callPackageWith (
|
||||||
|
pkgs // {
|
||||||
|
inherit channels;
|
||||||
|
lib = system-lib;
|
||||||
|
inputs = snowfall-lib.flake.without-src user-inputs;
|
||||||
|
namespace = snowfall-config.namespace;
|
||||||
|
}
|
||||||
|
) item {};
|
||||||
|
};
|
||||||
|
|
||||||
|
items-metadata = builtins.map create-metadata user-items;
|
||||||
|
|
||||||
|
merge-items = items: metadata:
|
||||||
|
items // { ${metadata.name} = metadata.drv; };
|
||||||
|
|
||||||
|
items = snowfall-lib.attrs.merge-with-aliases merge-items items-metadata alias // overrides;
|
||||||
|
in
|
||||||
|
filterPackages pkgs.stdenv.hostPlatform.system items;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user