{ lib, pkgs, config, ... }:
with lib;
let
  cfg = config.luj.status;
in
{

  options.luj.status = {
    enable = mkEnableOption "activate status page";
    nginx.enable = mkEnableOption "activate nginx";
    nginx.subdomain = mkOption {
      type = types.str;
    };
  };

  config = mkIf cfg.enable (
    mkMerge [{
      systemd = {
        timers.tinystatus = {
          wantedBy = [ "timers.target" ];
          partOf = [ "tinystatus.service" ];
          timerConfig.OnCalendar = "*-*-* *:05,10,15,20,25,30,35,40,45,50,55:00";
          timerConfig.Unit = "tinystatus.service";
        };
        services.tinystatus = {
          serviceConfig.Type = "oneshot";
          path = [ pkgs.gawk pkgs.gnused pkgs.curl pkgs.netcat pkgs.unixtools.ping ];
          script = ''
            mkdir -p /var/www/status
            ${pkgs.tinystatus}/bin/tinystatus ${./checks.csv} > /var/www/status/index.html
            ${pkgs.gnused}/bin/sed -i 's/tinystatus/Services status/g' /var/www/status/index.html
            ${pkgs.gnused}/bin/sed -i 's/80%/60%/g' /var/www/status/index.html
          '';
        };
      };
    }


      (mkIf cfg.nginx.enable {
        luj.nginx.enable = true;
        services.nginx.virtualHosts."${cfg.nginx.subdomain}.julienmalka.me" = {
          enableACME = true;
          forceSSL = true;
          root = "/var/www/status/";
        };

      })]);




}
