diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-11-29T16·18+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-11-29T16·18+0000 |
commit | 633518628f48fb9c06bfd570eeca6f62696aba05 (patch) | |
tree | 33313707305a011265e30d4670264a9b7979d298 /src/libstore/gc.cc | |
parent | 12d0a1eb753567bb2083aadb4ee3d325d3f29c70 (diff) |
* nix-env -e: support uninstalling by path, so that one can say
$ nix-env -e $(which firefox) or $ nix-env -e /nix/store/nywzlygrkfcgz7dfmhm5xixlx1l0m60v-pan-0.132 * nix-env -i: if an argument contains a slash anywhere, treat it as a path and follow it through symlinks into the Nix store. This allows things like $ nix-build -A firefox $ nix-env -i ./result * nix-env -q/-i/-e: don't complain when the `*' selector doesn't match anything. In particular, `nix-env -q \*' doesn't fail anymore on an empty profile.
Diffstat (limited to 'src/libstore/gc.cc')
-rw-r--r-- | src/libstore/gc.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index c0acbab38a43..dab2b80aad06 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -26,7 +26,7 @@ static string gcLockName = "gc.lock"; static string tempRootsDir = "temproots"; static string gcRootsDir = "gcroots"; -const unsigned int defaultGcLevel = 1000; +static const int defaultGcLevel = 1000; /* Acquire the global GC lock. This is used to prevent new Nix @@ -447,7 +447,7 @@ void LocalStore::collectGarbage(GCAction action, const PathSet & pathsToDelete, queryBoolSetting("gc-keep-outputs", false); bool gcKeepDerivations = queryBoolSetting("gc-keep-derivations", true); - unsigned int gcKeepOutputsThreshold = + int gcKeepOutputsThreshold = queryIntSetting ("gc-keep-outputs-threshold", defaultGcLevel); /* Acquire the global GC root. This prevents @@ -503,13 +503,12 @@ void LocalStore::collectGarbage(GCAction action, const PathSet & pathsToDelete, string gcLevelStr = drv.env["__gcLevel"]; int gcLevel; - if (!string2Int(gcLevelStr,gcLevel)) { + if (!string2Int(gcLevelStr, gcLevel)) gcLevel = defaultGcLevel; - } if (gcLevel >= gcKeepOutputsThreshold) for (DerivationOutputs::iterator j = drv.outputs.begin(); - j != drv.outputs.end(); ++j) + j != drv.outputs.end(); ++j) if (store->isValidPath(j->second.path)) computeFSClosure(j->second.path, livePaths); } |