mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-29 09:06:15 +02:00
a2fed6db9e
* manual: Contributing -> Development, Hacking -> Building what's currently called "hacking" are really instructions for setting up a development environment and compiling from source. we have a contribution guide in the repo (which rightly focuses on GitHub workflows), and the material in the manual is more about working on the code itself. since we'd otherwise have three headings that amount to "Building Nix", this change also moves the "classic Nix" instructions to the top. we may want to reorganise this in the future, and bring contributor-oriented information closer to the code, but for now let's stick to more accurate names to ease navigation.
45 lines
1.4 KiB
Nix
45 lines
1.4 KiB
Nix
let
|
|
inherit (builtins) concatStringsSep attrValues mapAttrs;
|
|
inherit (import <nix/utils.nix>) optionalString squash;
|
|
in
|
|
|
|
builtinsInfo:
|
|
let
|
|
showBuiltin = name: { doc, type ? null, args ? [ ], experimental-feature ? null, impure-only ? false }:
|
|
let
|
|
type' = optionalString (type != null) " (${type})";
|
|
|
|
experimentalNotice = optionalString (experimental-feature != null) ''
|
|
> **Note**
|
|
>
|
|
> This function is only available if the [`${experimental-feature}` experimental feature](@docroot@/development/experimental-features.md#xp-feature-${experimental-feature}) is enabled.
|
|
>
|
|
> For example, include the following in [`nix.conf`](@docroot@/command-ref/conf-file.md):
|
|
>
|
|
> ```
|
|
> extra-experimental-features = ${experimental-feature}
|
|
> ```
|
|
'';
|
|
|
|
impureNotice = optionalString impure-only ''
|
|
> **Note**
|
|
>
|
|
> Not available in [pure evaluation mode](@docroot@/command-ref/conf-file.md#conf-pure-eval).
|
|
'';
|
|
in
|
|
squash ''
|
|
<dt id="builtins-${name}">
|
|
<a href="#builtins-${name}"><code>${name}${listArgs args}</code></a>${type'}
|
|
</dt>
|
|
<dd>
|
|
|
|
${experimentalNotice}
|
|
|
|
${doc}
|
|
|
|
${impureNotice}
|
|
</dd>
|
|
'';
|
|
listArgs = args: concatStringsSep "" (map (s: " <var>${s}</var>") args);
|
|
in
|
|
concatStringsSep "\n" (attrValues (mapAttrs showBuiltin builtinsInfo))
|