aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/http-binary-cache-store.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/http-binary-cache-store.cc')
-rw-r--r--src/libstore/http-binary-cache-store.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/libstore/http-binary-cache-store.cc b/src/libstore/http-binary-cache-store.cc
index 6dcea1cbf..771eb42ee 100644
--- a/src/libstore/http-binary-cache-store.cc
+++ b/src/libstore/http-binary-cache-store.cc
@@ -1,6 +1,7 @@
#include "binary-cache-store.hh"
#include "download.hh"
#include "globals.hh"
+#include "nar-info-disk-cache.hh"
namespace nix {
@@ -24,13 +25,23 @@ public:
{
if (cacheUri.back() == '/')
cacheUri.pop_back();
+
+ diskCache = getNarInfoDiskCache();
+ }
+
+ std::string getUri() override
+ {
+ return cacheUri;
}
void init() override
{
// FIXME: do this lazily?
- if (!fileExists("nix-cache-info"))
- throw Error(format("ā€˜%sā€™ does not appear to be a binary cache") % cacheUri);
+ if (!diskCache->cacheExists(cacheUri)) {
+ if (!fileExists("nix-cache-info"))
+ throw Error(format("ā€˜%sā€™ does not appear to be a binary cache") % cacheUri);
+ diskCache->createCache(cacheUri);
+ }
}
protected: