| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  |   cfg = config.nix.gc; | 
					
						
							|  |  |  | in | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ###### interface | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   options = { | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  |     nix.gc = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       automatic = mkOption { | 
					
						
							|  |  |  |         default = false; | 
					
						
							| 
									
										
										
										
											2013-01-04 14:04:41 +01:00
										 |  |  |         type = types.bool; | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  |         description = "Automatically run the garbage collector at a specific time."; | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       dates = mkOption { | 
					
						
							| 
									
										
										
										
											2013-03-28 13:35:07 +01:00
										 |  |  |         default = "03:15"; | 
					
						
							| 
									
										
										
										
											2013-10-30 11:02:04 +01:00
										 |  |  |         type = types.str; | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  |         description = ''
 | 
					
						
							|  |  |  |           Specification (in the format described by | 
					
						
							|  |  |  |           <citerefentry><refentrytitle>systemd.time</refentrytitle> | 
					
						
							| 
									
										
										
										
											2017-03-21 08:27:56 +01:00
										 |  |  |           <manvolnum>7</manvolnum></citerefentry>) of the time at | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  |           which the garbage collector will run. | 
					
						
							|  |  |  |         '';
 | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       options = mkOption { | 
					
						
							|  |  |  |         default = ""; | 
					
						
							|  |  |  |         example = "--max-freed $((64 * 1024**3))"; | 
					
						
							| 
									
										
										
										
											2013-10-30 11:02:04 +01:00
										 |  |  |         type = types.str; | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  |         description = ''
 | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  |           Options given to <filename>nix-collect-garbage</filename> when the | 
					
						
							|  |  |  |           garbage collector is run automatically. | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  |         '';
 | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2013-03-02 01:03:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ###### implementation | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-09 14:28:35 +02:00
										 |  |  |   config = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     systemd.services.nix-gc = | 
					
						
							|  |  |  |       { description = "Nix Garbage Collector"; | 
					
						
							| 
									
										
										
										
											2016-04-24 13:57:19 +03:00
										 |  |  |         script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}"; | 
					
						
							| 
									
										
										
										
											2016-10-23 17:26:18 +02:00
										 |  |  |         startAt = optional cfg.automatic cfg.dates; | 
					
						
							| 
									
										
										
										
											2013-10-09 14:28:35 +02:00
										 |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2009-12-04 12:50:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | } |