about summary refs log tree commit diff
path: root/pkgs/profpatsch/execline/write-execline.nix
blob: 52c72ed5cfaa09f0a69246369b3c4d17ef981dd3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{ pkgs, execlineb-with-builtins }:
let
  escape = import ./escape.nix { inherit (pkgs) lib; };

  # Write a list of execline argv parameters to an execline script.
  # Everything is escaped correctly.
  # TODO upstream into nixpkgs
  writeExeclineCommon = writer: name: { readNArgs ? 0 }: argList: writer name ''
    #!${execlineb-with-builtins}/bin/execlineb -s${toString readNArgs}
    export EXECLINE_STRICT 2
    ${escape.escapeExecline argList}
  '';
  writeExecline = writeExeclineCommon pkgs.writeScript;
  writeExeclineBin = writeExeclineCommon pkgs.writeScriptBin;

in {
  inherit writeExecline writeExeclineBin;
}