forked from mirrors/nixpkgs
34 lines
887 B
Bash
34 lines
887 B
Bash
|
#! @shell@
|
||
|
|
||
|
fixupHooks=()
|
||
|
|
||
|
if [ -e @out@/nix-support/setup-hooks.sh ]; then
|
||
|
source @out@/nix-support/setup-hooks.sh
|
||
|
fi
|
||
|
|
||
|
excludes=""
|
||
|
while getopts e: o; do
|
||
|
case "$o" in
|
||
|
e) storeId=$(echo "$OPTARG" | @perl@/bin/perl -ne "print \"\$1\" if m|^\Q@storeDir@\E/([a-z0-9]{32})-.*|")
|
||
|
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|\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
|
||
|
fi
|
||
|
done
|