 8d0b95dc09
			
		
	
	
		8d0b95dc09
		
	
	
	
	
		
			
			By using types.lines for 'config', we can specify monit configurations in lots of modules and they can all be automatically combined together with newlines. This is desireable because different modules might want to each specify the small monitoring task specific to their service. This commit also updates the module to use current idioms.
		
			
				
	
	
		
			47 lines
		
	
	
		
			996 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			996 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {config, pkgs, lib, ...}:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.services.monit;
 | |
| in
 | |
| 
 | |
| {
 | |
|   options.services.monit = {
 | |
| 
 | |
|     enable = mkEnableOption "Monit";
 | |
| 
 | |
|     config = mkOption {
 | |
|       type = types.lines;
 | |
|       default = "";
 | |
|       description = "monitrc content";
 | |
|     };
 | |
| 
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
| 
 | |
|     environment.systemPackages = [ pkgs.monit ];
 | |
| 
 | |
|     environment.etc."monitrc" = {
 | |
|       text = cfg.config;
 | |
|       mode = "0400";
 | |
|     };
 | |
| 
 | |
|     systemd.services.monit = {
 | |
|       description = "Pro-active monitoring utility for unix systems";
 | |
|       after = [ "network.target" ];
 | |
|       wantedBy = [ "multi-user.target" ];
 | |
|       serviceConfig = {
 | |
|         ExecStart = "${pkgs.monit}/bin/monit -I -c /etc/monitrc";
 | |
|         ExecStop = "${pkgs.monit}/bin/monit -c /etc/monitrc quit";
 | |
|         ExecReload = "${pkgs.monit}/bin/monit -c /etc/monitrc reload";
 | |
|         KillMode = "process";
 | |
|         Restart = "always";
 | |
|       };
 | |
|       restartTriggers = [ config.environment.etc."monitrc".source ];
 | |
|     };
 | |
| 
 | |
|   };
 | |
| }
 |