38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { pkgs, config, lib, ... }:
 | |
| let
 | |
|   cfg = config.homeModules.console.utility.nixIndex;
 | |
|   update-script = pkgs.writeShellApplication {
 | |
|     name = "fetch-nix-index-database";
 | |
|     runtimeInputs = with pkgs; [ wget coreutils ];
 | |
|     text = ''
 | |
|       filename="index-x86_64-linux"
 | |
|       mkdir -p ~/.cache/nix-index
 | |
|       cd ~/.cache/nix-index
 | |
|       wget -N "https://github.com/Mic92/nix-index-database/releases/latest/download/$filename"
 | |
|       ln -f "$filename" files
 | |
|     '';
 | |
|   };
 | |
| in
 | |
| {
 | |
|   config = lib.mkIf cfg.enable {
 | |
|     programs.nix-index.enable = true;
 | |
| 
 | |
|     systemd.user.services.nix-index-database-sync = {
 | |
|       Unit = { Description = "fetch mic92/nix-index-database"; };
 | |
|       Service = {
 | |
|         Type = "oneshot";
 | |
|         ExecStart = "${update-script}/bin/fetch-nix-index-database";
 | |
|         Restart = "on-failure";
 | |
|         RestartSec = "5m";
 | |
|       };
 | |
|     };
 | |
|     systemd.user.timers.nix-index-database-sync = {
 | |
|       Unit = { Description = "Automatic github:mic92/nix-index-database fetching"; };
 | |
|       Timer = {
 | |
|         OnBootSec = "10m";
 | |
|         OnUnitActiveSec = "24h";
 | |
|       };
 | |
|       Install = { WantedBy = [ "timers.target" ]; };
 | |
|     };
 | |
|   };
 | |
| }
 |