27 lines
691 B
Nix
27 lines
691 B
Nix
{ pkgs }:
|
|
let
|
|
render = value:
|
|
let
|
|
normalized = normalize value;
|
|
inherit value;
|
|
inherit (pkgs) prefix;
|
|
in
|
|
assert normalized != null;
|
|
{ ${normalized} = "${prefix}${normalized}"; };
|
|
normalize = value: if value == null then fallback else value;
|
|
fallback = "default";
|
|
project = { value, normalize ? value }@args: { inherit (args) value; extra = normalize; };
|
|
in
|
|
{
|
|
result = render (project { value = "name"; }).value;
|
|
path = ./. + "/foo";
|
|
url = "https://example.com";
|
|
inherit pkgs;
|
|
different = other;
|
|
nested.package = nested.package;
|
|
"quoted" = quoted;
|
|
${dynamic} = dynamic;
|
|
from = pkgs.from.other;
|
|
fallback = pkgs.fallback or null;
|
|
}
|