From 2001895f3d2668549feb60a182aa624a7b6292eb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Oct 2012 17:13:46 -0400 Subject: Add a --repair flag to ‘nix-store -r’ to repair derivation outputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With this flag, if any valid derivation output is missing or corrupt, it will be recreated by using a substitute if available, or by rebuilding the derivation. The latter may use hash rewriting if chroots are not available. --- src/libstore/local-store.hh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/libstore/local-store.hh') diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh index 9f1c8280a8de..00356bf9d7bf 100644 --- a/src/libstore/local-store.hh +++ b/src/libstore/local-store.hh @@ -150,7 +150,7 @@ public: Paths importPaths(bool requireSignature, Source & source); - void buildPaths(const PathSet & paths); + void buildPaths(const PathSet & paths, bool repair = false); void ensurePath(const Path & path); @@ -202,6 +202,10 @@ public: a substituter (if available). */ void repairPath(const Path & path); + /* Check whether the given valid path exists and has the right + contents. */ + bool pathContentsGood(const Path & path); + private: Path schemaPath; -- cgit 1.4.1