Temporarily revert to using 'tar' until we have gzip support

This commit is contained in:
Eelco Dolstra 2019-12-12 15:07:31 +01:00
parent ecb3a1afa2
commit a045f93396

View file

@ -910,6 +910,7 @@ CachedDownloadResult Downloader::downloadCached(
printInfo("unpacking '%s'...", url); printInfo("unpacking '%s'...", url);
Path tmpDir = createTempDir(); Path tmpDir = createTempDir();
AutoDelete autoDelete(tmpDir, true); AutoDelete autoDelete(tmpDir, true);
#if 0
unpackTarfile(store->toRealPath(store->printStorePath(*storePath)), tmpDir, std::string(baseNameOf(url))); unpackTarfile(store->toRealPath(store->printStorePath(*storePath)), tmpDir, std::string(baseNameOf(url)));
auto members = readDirectory(tmpDir); auto members = readDirectory(tmpDir);
if (members.size() != 1) if (members.size() != 1)
@ -917,6 +918,12 @@ CachedDownloadResult Downloader::downloadCached(
auto topDir = tmpDir + "/" + members.begin()->name; auto topDir = tmpDir + "/" + members.begin()->name;
result.lastModified = lstat(topDir).st_mtime; result.lastModified = lstat(topDir).st_mtime;
unpackedStorePath = store->addToStore(name, topDir, true, htSHA256, defaultPathFilter, NoRepair); unpackedStorePath = store->addToStore(name, topDir, true, htSHA256, defaultPathFilter, NoRepair);
#else
// FIXME: this requires GNU tar for decompression.
runProgram("tar", true, {"xf", store->toRealPath(store->printStorePath(*storePath)), "-C", tmpDir, "--strip-components", "1"});
result.lastModified = lstat(tmpDir).st_mtime;
unpackedStorePath = store->addToStore(name, tmpDir, true, htSHA256, defaultPathFilter, NoRepair);
#endif
} }
// Store the last-modified date of the tarball in the symlink // Store the last-modified date of the tarball in the symlink
// mtime. This saves us from having to store it somewhere // mtime. This saves us from having to store it somewhere