Added timer to check if /etc/nixos is clean
This commit is contained in:
		
							parent
							
								
									3343ec1dec
								
							
						
					
					
						commit
						f50bb2e8c3
					
				@ -5,14 +5,17 @@
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
  let
 | 
			
		||||
    list-replace = l: e: e':
 | 
			
		||||
      (let i = lib.lists.findFirstIndex (a: a == e) (-1) l; in
 | 
			
		||||
        if (i == (-1)) then builtins.throw "Could not find item in list" else (lib.lists.take i l ++ [e'] ++ lib.lists.drop (i+1) l));
 | 
			
		||||
    dovecot-mysaa = pkgs.dovecot.overrideAttrs {
 | 
			
		||||
      configureFlags =
 | 
			
		||||
        list-replace (list-replace pkgs.dovecot.configureFlags "--sysconfdir=/etc" "--sysconfdir=/home/mysaa/.local/etc/")
 | 
			
		||||
          "--localstatedir=/var" "--localstatedir=/home/mysaa/.local/var";
 | 
			
		||||
    }; in
 | 
			
		||||
    clean-nixos-git-check-script = pkgs.writeScript "clean-nixos-git-check" ''
 | 
			
		||||
    if [ -z "$(${pkgs.git}/bin/git -C /etc/nixos status -u --porcelain)" ]
 | 
			
		||||
    then
 | 
			
		||||
      echo "/etc/nixos is clean !"
 | 
			
		||||
      exit 0
 | 
			
		||||
    else
 | 
			
		||||
      ${pkgs.zenity}/bin/zenity --info --text="/etc/nixos/ is not clean, don't forget to commit !"
 | 
			
		||||
      exit 0
 | 
			
		||||
    fi
 | 
			
		||||
  '';
 | 
			
		||||
    in
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
@ -87,4 +90,33 @@
 | 
			
		||||
      WantedBy = [ "timers.target" ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home-manager.users.mysaa.systemd.user = {
 | 
			
		||||
    services.check-nixos-git-clean = {
 | 
			
		||||
      Unit = {
 | 
			
		||||
        Description = "Sends a notification if /etc/nixos is not clean";
 | 
			
		||||
      };
 | 
			
		||||
      Service = {
 | 
			
		||||
        Type = "oneshot";
 | 
			
		||||
        ExecStart = "${pkgs.bash}/bin/bash ${clean-nixos-git-check-script}";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    timers.check-nixos-git-clean = {
 | 
			
		||||
      Unit = {
 | 
			
		||||
        Description = "Bi-hourly reminder that /etc/nixos should be clean";
 | 
			
		||||
      };
 | 
			
		||||
      Timer = {
 | 
			
		||||
        OnBootSec = "5min";
 | 
			
		||||
        OnUnitActiveSec = "30min";
 | 
			
		||||
        Persistent = "true";
 | 
			
		||||
        Unit = "check-nixos-git-clean.service";
 | 
			
		||||
      };
 | 
			
		||||
      Install = {
 | 
			
		||||
        WantedBy = [ "timers.target" ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user