mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-11 04:05:40 +03:00
build-support: Simplify tmpdir creation with coreutils
macOS 10.12 doesn't have a usable --tmpdir flag on the builtin mktemp, but we can make use of coreutil's mktemp instead.
This commit is contained in:
parent
0c3d16a7d5
commit
6cb8c5ec01
8 changed files with 10 additions and 12 deletions
|
@ -123,7 +123,7 @@ sourceUrl="docker://$imageName@$imageDigest"
|
|||
|
||||
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
|
||||
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
|
||||
tmpPath="$(realpath "$(mktemp -d "${TMPDIR:-/tmp}/skopeo-copy-tmp-XXXXXXXX")")"
|
||||
tmpPath="$(realpath "$(mktemp -d --tmpdir skopeo-copy-tmp-XXXXXXXX)")"
|
||||
trap "rm -rf \"$tmpPath\"" EXIT
|
||||
|
||||
tmpFile="$tmpPath/$(get_name $finalImageName $finalImageTag)"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, makeWrapper, nix, skopeo, jq }:
|
||||
{ lib, stdenv, makeWrapper, nix, skopeo, jq, coreutils }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "nix-prefetch-docker";
|
||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation {
|
|||
installPhase = ''
|
||||
install -vD ${./nix-prefetch-docker} $out/bin/$name;
|
||||
wrapProgram $out/bin/$name \
|
||||
--prefix PATH : ${lib.makeBinPath [ nix skopeo jq ]} \
|
||||
--prefix PATH : ${lib.makeBinPath [ nix skopeo jq coreutils ]} \
|
||||
--set HOME /homeless-shelter
|
||||
'';
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ fi
|
|||
if test -z "$finalPath"; then
|
||||
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
|
||||
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
|
||||
tmpPath="$(realpath "$(mktemp -d "${TMPDIR:-/tmp}/bzr-checkout-tmp-XXXXXXXX")")"
|
||||
tmpPath="$(realpath "$(mktemp -d --tmpdir bzr-checkout-tmp-XXXXXXXX)")"
|
||||
trap "rm -rf \"$tmpPath\"" EXIT
|
||||
|
||||
tmpFile="$tmpPath/$dstFile"
|
||||
|
|
|
@ -22,7 +22,7 @@ fi
|
|||
mkTempDir() {
|
||||
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
|
||||
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
|
||||
tmpPath="$(realpath "$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-cvs-XXXXXXXX")")"
|
||||
tmpPath="$(realpath "$(mktemp -d --tmpdir nix-prefetch-csv-XXXXXXXX)")"
|
||||
trap removeTempDir EXIT
|
||||
}
|
||||
|
||||
|
|
|
@ -453,10 +453,9 @@ else
|
|||
# If we don't know the hash or a path with that hash doesn't exist,
|
||||
# download the file and add it to the store.
|
||||
if test -z "$finalPath"; then
|
||||
|
||||
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
|
||||
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
|
||||
tmpPath="$(realpath "$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")")"
|
||||
tmpPath="$(realpath "$(mktemp -d --tmpdir git-checkout-tmp-XXXXXXXX)")"
|
||||
exit_handlers+=(remove_tmpPath)
|
||||
|
||||
tmpFile="$tmpPath/$(url_to_name "$url" "$rev")"
|
||||
|
|
|
@ -42,10 +42,9 @@ fi
|
|||
# If we don't know the hash or a path with that hash doesn't exist,
|
||||
# download the file and add it to the store.
|
||||
if [[ -z "$finalPath" ]]; then
|
||||
|
||||
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
|
||||
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
|
||||
tmpPath="$(realpath "$(mktemp -d "${TMPDIR:-/tmp}/hg-checkout-tmp-XXXXXXXX")")"
|
||||
tmpPath="$(realpath "$(mktemp -d --tmpdir hg-checkout-tmp-XXXXXXXX)")"
|
||||
cleanup() { x=$?; rm -rf "$tmpPath"; exit $x; }; trap cleanup EXIT
|
||||
|
||||
tmpArchive="$tmpPath/hg-archive"
|
||||
|
|
|
@ -43,7 +43,7 @@ fi
|
|||
if test -z "$finalPath"; then
|
||||
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
|
||||
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
|
||||
tmpPath="$(realpath "$(mktemp -d "${TMPDIR:-/tmp}/svn-checkout-tmp-XXXXXXXX")")"
|
||||
tmpPath="$(realpath "$(mktemp -d --tmpdir svn-checkout-tmp-XXXXXXXX)")"
|
||||
trap "rm -rf \"$tmpPath\"" EXIT
|
||||
|
||||
tmpFile="$tmpPath/$dstFile"
|
||||
|
|
|
@ -13,7 +13,7 @@ let mkPrefetchScript = tool: src: deps:
|
|||
installPhase = ''
|
||||
install -vD ${src} $out/bin/$name;
|
||||
wrapProgram $out/bin/$name \
|
||||
--prefix PATH : ${lib.makeBinPath (deps ++ [ gnused nix ])} \
|
||||
--prefix PATH : ${lib.makeBinPath (deps ++ [ coreutils gnused nix ])} \
|
||||
--set HOME /homeless-shelter
|
||||
'';
|
||||
|
||||
|
@ -28,7 +28,7 @@ let mkPrefetchScript = tool: src: deps:
|
|||
in rec {
|
||||
nix-prefetch-bzr = mkPrefetchScript "bzr" ../../../build-support/fetchbzr/nix-prefetch-bzr [ breezy ];
|
||||
nix-prefetch-cvs = mkPrefetchScript "cvs" ../../../build-support/fetchcvs/nix-prefetch-cvs [ cvs ];
|
||||
nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [ coreutils findutils gawk git git-lfs ];
|
||||
nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [ findutils gawk git git-lfs ];
|
||||
nix-prefetch-hg = mkPrefetchScript "hg" ../../../build-support/fetchhg/nix-prefetch-hg [ mercurial ];
|
||||
nix-prefetch-svn = mkPrefetchScript "svn" ../../../build-support/fetchsvn/nix-prefetch-svn [ subversion ];
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue