Commit graph

10 commits

Author SHA1 Message Date
Thomas Tuegel
55544c1e68 nix-prefetch-zip: keep downloaded file extension
Keep the correct file extension on the downloaded file so that
`unpackFile` will know how to unpack it correctly.
2015-12-19 09:32:22 -06:00
Charles Strahan
24b5eb61eb fetchzip: fix unpacking regression
This resolves a regression introduced in fc01353703, where providing a
name without a proper extension breaks existing uses of fetchzip (they
now fail to unpack). Of particular note, that commit broke all uses of
fetchFromGitHub because it uses a name like so: "${repo}-${rev}-src"

Fixes #5954
2015-01-25 20:16:21 -05:00
Charles Strahan
fc01353703 fetchzip: various fixes
This fixes:

 * Passing stripRoot.
 * Archives containing a single file.
 * Archives where the root folder has the same name as one of it's children.

Fixes #5851
2015-01-23 17:10:40 -05:00
Charles Strahan
4a3e689519 nix-prefetch-zip: support single files and recuring directories
See #5851
2015-01-23 17:10:40 -05:00
Charles Strahan
b6f9975b6a nix-prefetch-zip: unset $name
nix-shell leaks $name, breaking nix-prefetch-zip.
2015-01-22 21:18:16 -05:00
Michael Raskin
9ed097ab50 Fix fetchzip for actuall zip files 2014-12-12 15:16:57 +03:00
Eelco Dolstra
1a44dbbbb9 unpackFile: Always copy directories
If $src refers to a directory, then always copy it. Previously, we
checked the extension first, so if the directory had an extension like
.tar, unpackPhase would fail.
2014-08-09 12:44:49 +02:00
Charles Strahan
9bd8dffd77 require gnused for all prefetch scripts 2014-06-23 01:25:40 -04:00
Eelco Dolstra
ea36f3b868 fetchFromGitHub: Use .tar.gz instead of .zip
Also clean up the name attribute of fetchzip derivations a bit.
2014-05-09 15:53:44 +02:00
Eelco Dolstra
c8df888858 Add a function "fetchzip"
This function downloads and unpacks a file in one fixed-output
derivation. This is primarily useful for dynamically generated zip
files, such as GitHub's /archive URLs, where the unpacked content of
the zip file doesn't change, but the zip file itself may (e.g. due to
minor changes in the compression algorithm, or changes in timestamps).

Fetchzip is implemented by extending fetchurl with a "postFetch" hook
that is executed after the file has been downloaded. This hook can
thus perform arbitrary checks or transformations on the downloaded
file.
2014-05-08 15:30:17 +02:00