Nix Engine
The nix engine uses the set of functions provided by pkgs.formats
. You can
see the source here.
Concepts
The basic outline of an entry in pkgs.formats
is as follows:
{
format = {}: {
generate = name: value: pkgs.runCommand {...};
};
}
Where format
is the name of the supported format (i.e., json
).
Note that the format
entry is a function that takes a single attribute set. In
some cases, this is an empty set, but in other cases, the set contains
additional options for configuring the format.
Usage
When using the nix
engine from Nixago, one can pass attributes to the set with
the following:
{
engine = nixago.lib.engines.nix { opt1 = "value1"; };
}
The provided set will be passed to the format
argument before calling its
generate
function.
When calling make
, the specified value for the format
attribute will be used
to determine which entry in pkgs.formats
to invoke. Thus, specifying an
unsupported format will result in an assertion error. Refer to the nixpkgs
source code to determine the currently supported output formats.