 a04a7272aa
			
		
	
	
		a04a7272aa
		
	
	
	
	
		
			
			- add missing types in module definitions - add missing 'defaultText' in module definitions - wrap example with 'literalExample' where necessary in module definitions
		
			
				
	
	
		
			47 lines
		
	
	
		
			916 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			916 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.services.logrotate;
 | |
| 
 | |
|   configFile = pkgs.writeText "logrotate.conf"
 | |
|     cfg.config;
 | |
| 
 | |
| in
 | |
| {
 | |
|   options = {
 | |
|     services.logrotate = {
 | |
|       enable = mkOption {
 | |
|         type = lib.types.bool;
 | |
|         default = false;
 | |
|         description = ''
 | |
|           Enable the logrotate cron job
 | |
|         '';
 | |
|       };
 | |
| 
 | |
|       config = mkOption {
 | |
|         default = "";
 | |
|         type = types.lines;
 | |
|         description = ''
 | |
|           The contents of the logrotate config file
 | |
|         '';
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
|     systemd.services.logrotate = {
 | |
|       description   = "Logrotate Service";
 | |
|       wantedBy      = [ "multi-user.target" ];
 | |
|       startAt       = "*-*-* *:05:00";
 | |
| 
 | |
|       serviceConfig.Restart = "no";
 | |
|       serviceConfig.User    = "root";
 | |
|       script = ''
 | |
|         exec ${pkgs.logrotate}/sbin/logrotate ${configFile}
 | |
|       '';
 | |
|     };
 | |
|   };
 | |
| }
 |