diff --git a/home/opdavies/nixedo.nix b/home/opdavies/nixedo.nix index 636f67d1..e6c8bebd 100644 --- a/home/opdavies/nixedo.nix +++ b/home/opdavies/nixedo.nix @@ -1,5 +1,9 @@ { - imports = [ ../common ]; + imports = [ + ../common + + ./nixedo/modules/email-filters.nix + ]; cli = { fzf.enable = true; diff --git a/home/opdavies/nixedo/modules/email-filters.nix b/home/opdavies/nixedo/modules/email-filters.nix new file mode 100644 index 00000000..4786c6c5 --- /dev/null +++ b/home/opdavies/nixedo/modules/email-filters.nix @@ -0,0 +1,45 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.nixedo.${name}; + name = "email-filters"; +in +{ + options.nixedo.${name} = { + configFile = lib.mkOption { + default = "${config.home.homeDirectory}/Code/${name}/config.lua"; + internal = true; + }; + }; + + config = { + systemd.user = { + services.${name} = { + Install.WantedBy = [ "default.target" ]; + + Service = { + ExecStart = "${lib.getExe pkgs.imapfilter} -c ${cfg.configFile}"; + Type = "oneshot"; + }; + + Unit.Description = name; + }; + + timers.${name} = { + Install.WantedBy = [ "timers.target" ]; + + Timer = { + OnCalendar = "*-*-* 06..23:00/5"; + Unit = "${name}.service"; + }; + + Unit.Description = "Automatically runs email filters with imapfilter."; + }; + }; + }; +} diff --git a/hosts/t490/services/cron.nix b/hosts/t490/services/cron.nix index f9b961c3..a8872af2 100644 --- a/hosts/t490/services/cron.nix +++ b/hosts/t490/services/cron.nix @@ -5,7 +5,6 @@ enable = true; systemCronJobs = [ - "*/15 * * * * opdavies ${pkgs.imapfilter}/bin/imapfilter -c ~/Code/email-filters/config.lua" "0 8,20 * * * opdavies ${pkgs.isync}/bin/mbsync -a" ]; };