mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-02 03:43:06 +00:00
42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
|
unpackCmdHooks+=(_FreeBSDUnpackSource)
|
||
|
|
||
|
_FreeBSDUnpackSource() {
|
||
|
local fn="$1"
|
||
|
local destination
|
||
|
|
||
|
if [ -d "$fn" ]; then
|
||
|
|
||
|
destination="$(stripHash "$fn")"
|
||
|
|
||
|
if [ -e "$destination" ]; then
|
||
|
echo "Cannot copy $fn to $destination: destination already exists!"
|
||
|
echo "Did you specify two \"srcs\" with the same \"name\"?"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
# We can't preserve hardlinks because they may have been
|
||
|
# introduced by store optimization, which might break things
|
||
|
# in the build.
|
||
|
bsdcp -a -- "$fn" "$destination"
|
||
|
chmod -R +w "$destination"
|
||
|
|
||
|
else
|
||
|
|
||
|
case "$fn" in
|
||
|
*.tar.xz | *.tar.lzma | *.txz)
|
||
|
# Don't rely on tar knowing about .xz.
|
||
|
xz -d < "$fn" | tar xf - --warning=no-timestamp
|
||
|
;;
|
||
|
*.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
|
||
|
# GNU tar can automatically select the decompression method
|
||
|
# (info "(tar) gzip").
|
||
|
tar xf "$fn" --warning=no-timestamp
|
||
|
;;
|
||
|
*)
|
||
|
return 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
fi
|
||
|
}
|