diff options
author | aszlig <aszlig@redmoonstudios.org> | 2014-08-25 15:00:55 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2014-08-25 15:28:55 +0200 |
commit | f83af95f8a54d0375ac6e159b663de887ba5b6a6 (patch) | |
tree | 4caf88900435fdcee5201dd0a3ca037fa5157221 /pkgs/build-support/fetchhg | |
parent | 39b1e2fffc60f6603d8b0daa9f1dd55960311c49 (diff) | |
download | nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.tar nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.tar.gz nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.tar.bz2 nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.tar.lz nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.tar.xz nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.tar.zst nixpkgs-f83af95f8a54d0375ac6e159b663de887ba5b6a6.zip |
build-support: Use mktemp -d in nix-prefetch-*.
Instead of relying on $$ to not collide with an existing path. Quoting the Bash manual about $$: > Expands to the process ID of the shell. In a () subshell, it expands > to the process ID of the current shell, not the subshell. So, this is different from $BASHPID: > Expands to the process ID of the current bash process. This differs > from $$ under certain circumstances, such as subshells that do not > require bash to be re-initialized. But even $BASHPID is prone to race conditions if the process IDs wrap around, so to be on the safe side, we're using mktemp here. Closes #3784. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/build-support/fetchhg')
-rwxr-xr-x | pkgs/build-support/fetchhg/nix-prefetch-hg | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg index 075dbc9c367..7d4c0c8d741 100755 --- a/pkgs/build-support/fetchhg/nix-prefetch-hg +++ b/pkgs/build-support/fetchhg/nix-prefetch-hg @@ -35,11 +35,10 @@ fi # download the file and add it to the store. if test -z "$finalPath"; then - tmpPath=/tmp/hg-checkout-tmp-$$ - tmpArchive=$tmpPath/hg-archive - mkdir $tmpPath + tmpPath="$(mktemp --tmpdir -d hg-checkout-tmp-XXXXXXXX)" + trap "rm -rf \"$tmpPath\"" EXIT - trap "rm -rf $tmpPath" EXIT + tmpArchive="$tmpPath/hg-archive" # Perform the checkout. if [[ $url != /* ]]; then |