about summary refs log tree commit diff
path: root/nix/writeScript/default.nix
blob: 1f53b4e4ff5199a242a733a1b2acb8af5f4fcf3f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{ pkgs, depot, ... }:

# Write the given string to $out
# and make it executable.

let
  bins = depot.nix.getBins pkgs.s6-portable-utils [
    "s6-cat"
    "s6-chmod"
  ];

in
name:
# string of the executable script that is put in $out
script:

depot.nix.runExecline name
{
  stdin = script;
  derivationArgs = {
    preferLocalBuild = true;
    allowSubstitutes = false;
  };
} [
  "importas"
  "out"
  "out"
  # this pipes stdout of s6-cat to $out
  # and s6-cat redirects from stdin to stdout
  "if"
  [ "redirfd" "-w" "1" "$out" bins.s6-cat ]
  bins.s6-chmod
  "0755"
  "$out"
]