From 29cf434a35d82529f56c085c9cd50858c148d086 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 5 Dec 2006 01:31:45 +0000 Subject: * The determination of the root set should be made by the privileged process, so forward the operation. * Spam the user about GC misconfigurations (NIX-71). * findRoots: skip all roots that are unreadable - the warnings with which we spam the user should be enough. --- src/nix-worker/main.cc | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) (limited to 'src/nix-worker') diff --git a/src/nix-worker/main.cc b/src/nix-worker/main.cc index 80db782e90ba..e772421f39bc 100644 --- a/src/nix-worker/main.cc +++ b/src/nix-worker/main.cc @@ -23,23 +23,6 @@ using namespace nix; #endif -static Path readStorePath(Source & from) -{ - Path path = readString(from); - assertStorePath(path); - return path; -} - - -static PathSet readStorePaths(Source & from) -{ - PathSet paths = readStringSet(from); - for (PathSet::iterator i = paths.begin(); i != paths.end(); ++i) - assertStorePath(*i); - return paths; -} - - static FdSource from(STDIN_FILENO); static FdSink to(STDOUT_FILENO); @@ -286,6 +269,18 @@ static void performOp(Source & from, Sink & to, unsigned int op) break; } + case wopFindRoots: { + startWork(); + Roots roots = store->findRoots(); + stopWork(); + writeInt(roots.size(), to); + for (Roots::iterator i = roots.begin(); i != roots.end(); ++i) { + writeString(i->first, to); + writeString(i->second, to); + } + break; + } + default: throw Error(format("invalid operation %1%") % op); } -- cgit 1.4.1