{ config, pkgs, lib, ... }:
let
  cfg = config.services.flexget;
in
{

  # Flexget
  # Multipurpose automation tool for all of your media

  sops.secrets.flexget.owner = "flexget";
  sops.secrets.flexget.group = "flexget";
  sops.secrets.flexget.restartUnits = [ "flexget.service" ];

  services.flexget = {
	  enable = true;
  	user = "flexget"; # The user under which to run flexget.
  	homeDir = "/var/lib/flexget";
  	interval = "30m";
  	config = "";
  };
  users.groups."${config.services.flexget.user}" = lib.mkIf config.services.flexget.enable { };
  users.users."${config.services.flexget.user}" = lib.mkIf config.services.flexget.enable {
  	isSystemUser = true;
  	createHome = true;
  	home = config.services.flexget.homeDir;
  	group = "${config.services.flexget.user}";
  };

  # TODO: https://github.com/NixOS/nixpkgs/pull/208199
  systemd.services.flexget.serviceConfig.ExecStartPre = lib.mkForce
    "${pkgs.coreutils}/bin/ln -sf /run/secrets/flexget ${toString cfg.homeDir}/flexget.yml";
  systemd.services.flexget-runner.serviceConfig.ExecStartPre = lib.mkForce
    "${pkgs.coreutils}/bin/ln -sf /run/secrets/flexget ${toString cfg.homeDir}/flexget.yml";

}
