mirror of
https://github.com/NixOS/nix
synced 2025-07-03 10:21:47 +02:00
* `nix-store --gc --print-roots': also print the path of the actual
root symlink, not just its target. E.g.: /nix/var/nix/profiles/system-99-link -> /nix/store/76kwf88657nq7wgk1hx3l1z5q91zb9wd-system
This commit is contained in:
parent
c364d5d1e3
commit
ae6bf87273
3 changed files with 16 additions and 17 deletions
|
@ -520,6 +520,7 @@ struct PrintFreed
|
|||
|
||||
static void opGC(Strings opFlags, Strings opArgs)
|
||||
{
|
||||
bool printRoots = false;
|
||||
GCOptions options;
|
||||
options.action = GCOptions::gcDeleteDead;
|
||||
|
||||
|
@ -527,7 +528,7 @@ static void opGC(Strings opFlags, Strings opArgs)
|
|||
|
||||
/* Do what? */
|
||||
foreach (Strings::iterator, i, opFlags)
|
||||
if (*i == "--print-roots") options.action = GCOptions::gcReturnRoots;
|
||||
if (*i == "--print-roots") printRoots = true;
|
||||
else if (*i == "--print-live") options.action = GCOptions::gcReturnLive;
|
||||
else if (*i == "--print-dead") options.action = GCOptions::gcReturnDead;
|
||||
else if (*i == "--delete") options.action = GCOptions::gcDeleteDead;
|
||||
|
@ -539,13 +540,21 @@ static void opGC(Strings opFlags, Strings opArgs)
|
|||
else throw UsageError(format("bad sub-operation `%1%' in GC") % *i);
|
||||
|
||||
if (!opArgs.empty()) throw UsageError("no arguments expected");
|
||||
|
||||
PrintFreed freed(options.action == GCOptions::gcDeleteDead, results);
|
||||
store->collectGarbage(options, results);
|
||||
|
||||
if (options.action != GCOptions::gcDeleteDead)
|
||||
foreach (PathSet::iterator, i, results.paths)
|
||||
cout << *i << std::endl;
|
||||
if (printRoots) {
|
||||
Roots roots = store->findRoots();
|
||||
foreach (Roots::iterator, i, roots)
|
||||
cout << i->first << " -> " << i->second << std::endl;
|
||||
}
|
||||
|
||||
else {
|
||||
PrintFreed freed(options.action == GCOptions::gcDeleteDead, results);
|
||||
store->collectGarbage(options, results);
|
||||
|
||||
if (options.action != GCOptions::gcDeleteDead)
|
||||
foreach (PathSet::iterator, i, results.paths)
|
||||
cout << *i << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue