diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-11-10 16:41:34 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2015-11-10 16:41:34 +0300 |
commit | d4c27381dc3fff79a4c7aa54b35d4df7169b71bd (patch) | |
tree | 53e49975f0cc49fe9a17f52d5e40949514e98bf1 /pkgs/build-support | |
parent | a8a58faedb23b3e250831de983f9ed196936d642 (diff) | |
parent | 12fcfe39db2a1f7df7c72dade591d497b153bbf8 (diff) | |
download | nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.tar nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.tar.gz nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.tar.bz2 nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.tar.lz nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.tar.xz nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.tar.zst nixlib-d4c27381dc3fff79a4c7aa54b35d4df7169b71bd.zip |
Merge pull request #10460 from abbradar/remote-askpass
Support network in initrd and entering LUKS passphrase via SSH
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/nuke-references/builder.sh | 25 | ||||
-rw-r--r-- | pkgs/build-support/nuke-references/default.nix | 5 |
2 files changed, 23 insertions, 7 deletions
diff --git a/pkgs/build-support/nuke-references/builder.sh b/pkgs/build-support/nuke-references/builder.sh index 9e8c464d8288..02eac664d437 100644 --- a/pkgs/build-support/nuke-references/builder.sh +++ b/pkgs/build-support/nuke-references/builder.sh @@ -3,11 +3,26 @@ source $stdenv/setup mkdir -p $out/bin cat > $out/bin/nuke-refs <<EOF #! $SHELL -e -for i in \$*; do - if test ! -L \$i -a -f \$i; then - cat \$i | sed "s|$NIX_STORE/[a-z0-9]*-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > \$i.tmp - if test -x \$i; then chmod +x \$i.tmp; fi - mv \$i.tmp \$i + +excludes="" +while getopts e: o; do + case "\$o" in + e) storeId=\$(echo "\$OPTARG" | sed -n "s|^$NIX_STORE/\\([a-z0-9]\{32\}\\)-.*|\1|p") + if [ -z "\$storeId" ]; then + echo "-e argument must be a Nix store path" + exit 1 + fi + excludes="\$excludes(?!\$storeId)" + ;; + esac +done +shift \$((\$OPTIND-1)) + +for i in "\$@"; do + if test ! -L "\$i" -a -f "\$i"; then + cat "\$i" | $perl/bin/perl -pe "s|$NIX_STORE/\$excludes[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > "\$i.tmp" + if test -x "\$i"; then chmod +x "\$i.tmp"; fi + mv "\$i.tmp" "\$i" fi done EOF diff --git a/pkgs/build-support/nuke-references/default.nix b/pkgs/build-support/nuke-references/default.nix index d672184553f6..8f976ad462cc 100644 --- a/pkgs/build-support/nuke-references/default.nix +++ b/pkgs/build-support/nuke-references/default.nix @@ -3,9 +3,10 @@ # path (/nix/store/eeee...). This is useful for getting rid of # dependencies that you know are not actually needed at runtime. -{stdenv}: +{ stdenv, perl }: stdenv.mkDerivation { name = "nuke-references"; builder = ./builder.sh; -} \ No newline at end of file + inherit perl; +} |