about summary refs log tree commit diff
path: root/nix/nint/README.md
diff options
context:
space:
mode:
authorsterni <sternenseemann@systemli.org>2021-09-14T21·50+0200
committersterni <sternenseemann@systemli.org>2021-09-18T11·56+0000
commit852d059e2f5845f572b442f52364d273b4a736f6 (patch)
tree1488eef69b451ecab73d01cb0a6c595b89aa9697 /nix/nint/README.md
parent5dec98233482ebd651f9be77984a178d6656efe4 (diff)
feat(nix/nint): accept attribute set with stdout, stderr and exit r/2882
This extends the calling convention for nint in a non-breaking way: If
the called script returns an attribute set instead of a string the
following is done:

* If the attributes `stdout` and/or `stderr` exist, their content (which
  must be a string currently) is written to the respective output.

* If the attribute `exit` exists, nint will exit with the given exit
  code. Must be a number that can be converted to an `i32`. If it's
  missing, nint will exit without indicating an error.

Change-Id: I209cf178fee3d970fdea3b26e4049e944af47457
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3547
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'nix/nint/README.md')
-rw-r--r--nix/nint/README.md12
1 files changed, 10 insertions, 2 deletions
diff --git a/nix/nint/README.md b/nix/nint/README.md
index ddd8045f7378..369a8276199a 100644
--- a/nix/nint/README.md
+++ b/nix/nint/README.md
@@ -15,8 +15,16 @@ to the following calling convention:
     program name at `builtins.head argv`.
   * Extra arguments can be manually passed as described below.
 
-* The return value should always be a string (throwing is also okay)
-  which is printed to stdout by `nint`.
+* The return value must either be
+
+  * A string which is rendered to `stdout`.
+
+  * An attribute set with the following optional attributes:
+
+    * `stdout`: A string that's rendered to `stdout`
+    * `stderr`: A string that's rendered to `stderr`
+    * `exit`: A number which is used as an exit code.
+      If missing, nint always exits with 0 (or equivalent).
 
 ## Usage