diff options
author | Benjamin Hipple <bhipple@protonmail.com> | 2020-03-26 00:35:40 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-26 00:35:40 -0400 |
commit | 259f3b3b68f730088dde3e6f7ba327afcd9eb5d5 (patch) | |
tree | cb71aaa784a0bdb2cd335823d1f4cd75db3c9ea4 /pkgs/build-support/fetchzip | |
parent | a0c0ae3af02b21ce07bafa2cc028d5bdcafc8c6c (diff) | |
download | nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.tar nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.tar.gz nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.tar.bz2 nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.tar.lz nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.tar.xz nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.tar.zst nixlib-259f3b3b68f730088dde3e6f7ba327afcd9eb5d5.zip |
Revert "fetchzip, fetchgit: cleanup handling of optional features and whitespace"
Diffstat (limited to 'pkgs/build-support/fetchzip')
-rw-r--r-- | pkgs/build-support/fetchzip/default.nix | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix index 9d829e43ccbc..c61df8ceb001 100644 --- a/pkgs/build-support/fetchzip/default.nix +++ b/pkgs/build-support/fetchzip/default.nix @@ -5,46 +5,47 @@ # (e.g. due to minor changes in the compression algorithm, or changes # in timestamps). -{ lib, fetchurl, unzip }: +{ fetchurl, unzip }: -{ name ? "source" +{ # Optionally move the contents of the unpacked tree up one level. + stripRoot ? true , url - # Optionally move the contents of the unpacked tree up one level. -, stripRoot ? true , extraPostFetch ? "" +, name ? "source" , ... } @ args: (fetchurl ({ inherit name; recursiveHash = true; - downloadToTemp = true; - postFetch = '' - unpackDir="$TMPDIR/unpack" - mkdir "$unpackDir" - cd "$unpackDir" + downloadToTemp = true; - renamed="$TMPDIR/${baseNameOf url}" - mv "$downloadedFile" "$renamed" - unpackFile "$renamed" - result=$unpackDir - '' - # Most src disted tarballs have a parent directory like foo-1.2.3/ to strip - + lib.optionalString stripRoot '' - if [ $(ls "$unpackDir" | wc -l) != 1 ]; then - echo "error: zip file must contain a single file or directory." - echo "hint: Pass stripRoot=false; to fetchzip to assume flat list of files." - exit 1 - fi - fn=$(cd "$unpackDir" && echo *) - result="$unpackDir/$fn" - '' + '' - mkdir $out - mv "$result" "$out" - '' - + extraPostFetch; + postFetch = + '' + unpackDir="$TMPDIR/unpack" + mkdir "$unpackDir" + cd "$unpackDir" + renamed="$TMPDIR/${baseNameOf url}" + mv "$downloadedFile" "$renamed" + unpackFile "$renamed" + '' + + (if stripRoot then '' + if [ $(ls "$unpackDir" | wc -l) != 1 ]; then + echo "error: zip file must contain a single file or directory." + echo "hint: Pass stripRoot=false; to fetchzip to assume flat list of files." + exit 1 + fi + fn=$(cd "$unpackDir" && echo *) + if [ -f "$unpackDir/$fn" ]; then + mkdir $out + fi + mv "$unpackDir/$fn" "$out" + '' else '' + mv "$unpackDir" "$out" + '') #*/ + + extraPostFetch; } // removeAttrs args [ "stripRoot" "extraPostFetch" ])).overrideAttrs (x: { # Hackety-hack: we actually need unzip hooks, too nativeBuildInputs = x.nativeBuildInputs ++ [ unzip ]; |