31 lines
		
	
	
	
		
			762 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			762 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, inputs, pkgs, lib, ... }:
 | |
| 
 | |
| let
 | |
|   inherit (config.networking) hostName;
 | |
|   isClean = inputs.self ? rev;
 | |
| in
 | |
| {
 | |
|   system.autoUpgrade = {
 | |
|     enable = isClean;
 | |
|     dates = "hourly";
 | |
|     flags = [
 | |
|       "--refresh"
 | |
|     ];
 | |
|     flake = "github:ooks-io/nix#${hostName};
 | |
|   };
 | |
| 
 | |
| # Only run if current config (self) is older than the new one.
 | |
| 
 | |
|   systemd.services.nixos-upgrade = lib.mkIf config.system.autoUpgrade.enable {
 | |
|     serviceConfig.ExecCondition = lib.getExe (
 | |
|       pkgs.writeShellScriptBin "check-date" ''
 | |
|         lastModified() {
 | |
|           nix flake metadata "$1" --refresh --json | ${lib.getExe pkgs.jq} '.lastModified'
 | |
|         }
 | |
|         test "$(lastModified "${config.system.autoUpgrade.flake}")"  -gt "$(lastModified "self")"
 | |
|       ''
 | |
|     );
 | |
|   };
 | |
| }
 | |
| 
 | |
| 
 |