* 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.
This commit is contained in:
Eelco Dolstra 2006-12-05 01:31:45 +00:00
parent 8623256f48
commit 29cf434a35
9 changed files with 140 additions and 79 deletions

View file

@ -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);
}