parent
							
								
									1d29db2a9f
								
							
						
					
					
						commit
						eadb86f447
					
				
					 3 changed files with 11 additions and 18 deletions
				
			
		|  | @ -2,20 +2,10 @@ | |||
| #include "globals.hh" | ||||
| #include "util.hh" | ||||
| 
 | ||||
| #include <climits> | ||||
| 
 | ||||
| 
 | ||||
| namespace nix { | ||||
| 
 | ||||
| 
 | ||||
| GCOptions::GCOptions() | ||||
| { | ||||
|     action = gcDeleteDead; | ||||
|     ignoreLiveness = false; | ||||
|     maxFreed = ULLONG_MAX; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool isInStore(const Path & path) | ||||
| { | ||||
|     return isInDir(path, settings.nixStore); | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
| #include "serialise.hh" | ||||
| 
 | ||||
| #include <string> | ||||
| #include <limits> | ||||
| #include <map> | ||||
| #include <memory> | ||||
| 
 | ||||
|  | @ -36,21 +37,19 @@ struct GCOptions | |||
|         gcDeleteSpecific, | ||||
|     } GCAction; | ||||
| 
 | ||||
|     GCAction action; | ||||
|     GCAction action{gcDeleteDead}; | ||||
| 
 | ||||
|     /* If `ignoreLiveness' is set, then reachability from the roots is
 | ||||
|        ignored (dangerous!).  However, the paths must still be | ||||
|        unreferenced *within* the store (i.e., there can be no other | ||||
|        store paths that depend on them). */ | ||||
|     bool ignoreLiveness; | ||||
|     bool ignoreLiveness{false}; | ||||
| 
 | ||||
|     /* For `gcDeleteSpecific', the paths to delete. */ | ||||
|     PathSet pathsToDelete; | ||||
| 
 | ||||
|     /* Stop after at least `maxFreed' bytes have been freed. */ | ||||
|     unsigned long long maxFreed; | ||||
| 
 | ||||
|     GCOptions(); | ||||
|     unsigned long long maxFreed{std::numeric_limits<unsigned long long>::max()}; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -50,11 +50,12 @@ void removeOldGenerations(std::string dir) | |||
| int main(int argc, char * * argv) | ||||
| { | ||||
|     bool removeOld = false; | ||||
|     Strings extraArgs; | ||||
| 
 | ||||
|     return handleExceptions(argv[0], [&]() { | ||||
|         initNix(); | ||||
| 
 | ||||
|         GCOptions options; | ||||
| 
 | ||||
|         parseCmdLine(argc, argv, [&](Strings::iterator & arg, const Strings::iterator & end) { | ||||
|             if (*arg == "--help") | ||||
|                 showManPage("nix-collect-garbage"); | ||||
|  | @ -66,8 +67,12 @@ int main(int argc, char * * argv) | |||
|                 deleteOlderThan = getArg(*arg, arg, end); | ||||
|             } | ||||
|             else if (*arg == "--dry-run") dryRun = true; | ||||
|             else if (*arg == "--max-freed") { | ||||
|                 long long maxFreed = getIntArg<long long>(*arg, arg, end, true); | ||||
|                 options.maxFreed = maxFreed >= 0 ? maxFreed : 0; | ||||
|             } | ||||
|             else | ||||
|                 extraArgs.push_back(*arg); | ||||
|                 return false; | ||||
|             return true; | ||||
|         }); | ||||
| 
 | ||||
|  | @ -77,7 +82,6 @@ int main(int argc, char * * argv) | |||
|         // Run the actual garbage collector.
 | ||||
|         if (!dryRun) { | ||||
|             store = openStore(false); | ||||
|             GCOptions options; | ||||
|             options.action = GCOptions::gcDeleteDead; | ||||
|             GCResults results; | ||||
|             PrintFreed freed(true, results); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue