diff options
author | William A. Kennington III <william@wkennington.com> | 2015-08-28 17:55:20 -0700 |
---|---|---|
committer | William A. Kennington III <william@wkennington.com> | 2015-08-28 17:55:20 -0700 |
commit | 5ca1c32a9d3705b36caef94bd8a8628a81c2d210 (patch) | |
tree | 0baaad6405c8483726accb0b28c7aa5ffbea068b /pkgs/build-support | |
parent | 28a18999faeab25b92649027f4411e7f41d793da (diff) | |
parent | d2dce19793069b6104ff7df29af92316e7fe3b50 (diff) | |
download | nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.tar nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.tar.gz nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.tar.bz2 nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.tar.lz nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.tar.xz nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.tar.zst nixlib-5ca1c32a9d3705b36caef94bd8a8628a81c2d210.zip |
Merge branch 'master.upstream' into staging.upstream
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/build-fhs-userenv/default.nix | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/pkgs/build-support/build-fhs-userenv/default.nix b/pkgs/build-support/build-fhs-userenv/default.nix index b57b687e20f7..9060c073eee3 100644 --- a/pkgs/build-support/build-fhs-userenv/default.nix +++ b/pkgs/build-support/build-fhs-userenv/default.nix @@ -1,4 +1,4 @@ -{ writeText, writeScriptBin, stdenv, ruby } : { env, runScript } : +{ runCommand, writeText, writeScriptBin, stdenv, ruby } : { env, runScript ? "bash" } : let name = env.pname; @@ -9,21 +9,37 @@ let ${builtins.readFile ./chroot-user.rb} ''; - init = writeText "init" '' - # Make /tmp directory - mkdir -m 1777 /tmp + init = run: writeText "${name}-init" '' + # Make /tmp directory + mkdir -m 1777 /tmp - # Expose sockets in /tmp - for i in /host-tmp/.*-unix; do - ln -s "$i" "/tmp/$(basename "$i")" - done + # Expose sockets in /tmp + for i in /host-tmp/.*-unix; do + ln -s "$i" "/tmp/$(basename "$i")" + done - [ -d "$1" ] && [ -r "$1" ] && cd "$1" - shift - exec "${runScript}" "$@" - ''; + [ -d "$1" ] && [ -r "$1" ] && cd "$1" + shift + exec ${run} "$@" + ''; -in writeScriptBin name '' +in runCommand name { + passthru.env = + runCommand "${name}-shell-env" { + shellHook = '' + exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init "bash"} "$(pwd)" + ''; + } '' + echo >&2 "" + echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" + echo >&2 "" + exit 1 + ''; +} '' + mkdir -p $out/bin + cat <<EOF >$out/bin/${name} #! ${stdenv.shell} - exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init} "$(pwd)" "$@" + exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init runScript} "\$(pwd)" "\$@" + EOF + chmod +x $out/bin/${name} '' |