{nukeReferences,removeReferencesTo}: simplify and fix quoting

Emily 1620104e feb38c09

Changed files
+18 -50
pkgs
-5
pkgs/build-support/nuke-references/darwin-sign-fixup.sh
···
-
# Fixup hook for nukeReferences, not stdenv
-
-
source @signingUtils@
-
-
fixupHooks+=(signIfRequired)
+3 -12
pkgs/build-support/nuke-references/default.nix
···
shell ? stdenvNoCC.shell,
}:
-
let
-
stdenv = stdenvNoCC;
-
-
darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64;
-
in
-
stdenvNoCC.mkDerivation {
name = "nuke-references";
···
chmod a+x $out/bin/nuke-refs
'';
-
postFixup = lib.optionalString darwinCodeSign ''
-
mkdir -p $out/nix-support
-
substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh
-
'';
-
# FIXME: get rid of perl dependency.
env = {
inherit perl;
inherit (builtins) storeDir;
shell = lib.getBin shell + (shell.shellPath or "");
-
signingUtils = lib.optionalString darwinCodeSign signingUtils;
+
signingUtils = lib.optionalString (
+
stdenvNoCC.targetPlatform.isDarwin && stdenvNoCC.targetPlatform.isAarch64
+
) signingUtils;
};
meta.mainProgram = "nuke-refs";
+5 -6
pkgs/build-support/nuke-references/nuke-refs.sh
···
fixupHooks=()
-
if [ -e @out@/nix-support/setup-hooks.sh ]; then
-
source @out@/nix-support/setup-hooks.sh
+
if [[ -n "@signingUtils@" ]]; then
+
source "@signingUtils@"
fi
excludes=""
···
cat "$i" | @perl@/bin/perl -pe "s|\Q@storeDir@\E/$excludes[a-z0-9]{32}-|@storeDir@/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > "$i.tmp"
if test -x "$i"; then chmod +x "$i.tmp"; fi
mv "$i.tmp" "$i"
-
-
for hook in "${fixupHooks[@]}"; do
-
eval "$hook" "$i"
-
done
+
if [[ -n "@signingUtils@" ]]; then
+
signIfRequired "$i"
+
fi
fi
done
-5
pkgs/build-support/remove-references-to/darwin-sign-fixup.sh
···
-
# Fixup hook for nukeReferences, not stdenv
-
-
source @signingUtils@
-
-
fixupHooks+=(signIfRequired)
+5 -14
pkgs/build-support/remove-references-to/default.nix
···
shell ? stdenvNoCC.shell,
}:
-
let
-
stdenv = stdenvNoCC;
-
-
darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64;
-
in
-
-
stdenv.mkDerivation {
+
stdenvNoCC.mkDerivation {
name = "remove-references-to";
dontUnpack = true;
···
chmod a+x $out/bin/remove-references-to
'';
-
postFixup = lib.optionalString darwinCodeSign ''
-
mkdir -p $out/nix-support
-
substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh
-
'';
-
env = {
inherit (builtins) storeDir;
shell = lib.getBin shell + (shell.shellPath or "");
-
}
-
// lib.optionalAttrs darwinCodeSign { inherit signingUtils; };
+
signingUtils = lib.optionalString (
+
stdenvNoCC.targetPlatform.isDarwin && stdenvNoCC.targetPlatform.isAarch64
+
) signingUtils;
+
};
meta.mainProgram = "remove-references-to";
}
+5 -8
pkgs/build-support/remove-references-to/remove-references-to.sh
···
fixupHooks=()
-
if [ -e @out@/nix-support/setup-hooks.sh ]; then
-
source @out@/nix-support/setup-hooks.sh
-
fi
-
# References to remove
targets=()
while getopts t: o; do
···
sed -i -e "s|$target|eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee|g" "${regions[@]}"
done
-
for region in "${regions[@]}"; do
-
for hook in "${fixupHooks[@]}"; do
-
eval "$hook" "$region"
+
if [[ -n "@signingUtils@" ]]; then
+
source "@signingUtils@"
+
for region in "${regions[@]}"; do
+
signIfRequired "$region"
done
-
done
+
fi