summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGenericNerdyUsername <genericnerdyusername@proton.me>2022-09-15 17:46:36 +0100
committerGenericNerdyUsername <genericnerdyusername@proton.me>2022-12-16 16:26:03 +0000
commit725f4bc5becaa05f5a73a4026e1c0641676600ad (patch)
tree983c42329f48f43acafda734d714b0a58444cc00
parentf350950b08f16a6a5eba86419269e02fb708c6f9 (diff)
fetchzip: don't error out if the directory inside the archive starts with a "."
-rw-r--r--pkgs/build-support/fetchzip/default.nix4
-rw-r--r--pkgs/build-support/fetchzip/tests.nix12
2 files changed, 12 insertions, 4 deletions
diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix
index 10142134792f..6fa93db5eee8 100644
--- a/pkgs/build-support/fetchzip/default.nix
+++ b/pkgs/build-support/fetchzip/default.nix
@@ -52,12 +52,12 @@ in {
chmod -R +w "$unpackDir"
''
+ (if stripRoot then ''
- if [ $(ls "$unpackDir" | wc -l) != 1 ]; then
+ if [ $(ls -A "$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 *)
+ fn=$(cd "$unpackDir" && ls -A)
if [ -f "$unpackDir/$fn" ]; then
mkdir $out
fi
diff --git a/pkgs/build-support/fetchzip/tests.nix b/pkgs/build-support/fetchzip/tests.nix
index f1a1ed65817b..13175d5ce921 100644
--- a/pkgs/build-support/fetchzip/tests.nix
+++ b/pkgs/build-support/fetchzip/tests.nix
@@ -1,4 +1,4 @@
-{ testers, fetchzip, ... }:
+{ testers, fetchzip, runCommand, ... }:
let
url = "https://gist.github.com/glandium/01d54cefdb70561b5f6675e08f2990f2/archive/2f430f0c136a69b0886281d0c76708997d8878af.zip";
@@ -12,6 +12,14 @@ in
postFetch = testers.invalidateFetcherByDrvHash fetchzip {
inherit url;
sha256 = "sha256-7sAOzKa+9vYx5XyndHxeY2ffWAjOsgCkXC9anK6cuV0=";
- postFetch = ''touch $out/filee'';
+ postFetch = "touch $out/filee";
+ };
+
+ hiddenDir = testers.invalidateFetcherByDrvHash fetchzip {
+ url = "file://${runCommand "hiddendir.tar" {} ''
+ mkdir .foo
+ tar -cf $out .foo
+ ''}";
+ sha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
};
}