about summary refs log tree commit diff
path: root/src/libstore/gc.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2007-11-29T16·18+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2007-11-29T16·18+0000
commit633518628f48fb9c06bfd570eeca6f62696aba05 (patch)
tree33313707305a011265e30d4670264a9b7979d298 /src/libstore/gc.cc
parent12d0a1eb753567bb2083aadb4ee3d325d3f29c70 (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.cc9
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);
             }