# SPDX-FileCopyrightText: 2024 Ryan Lahfa # # SPDX-License-Identifier: EUPL-1.2 { config, pkgs, lib, ... }: let cfg = config.dgn-chatops; inherit (lib) mkEnableOption mkIf; python3 = pkgs.python311; python3Pkgs = python3.pkgs; ircrobots = python3Pkgs.callPackage ./ircrobots.nix { }; tortoise-orm = python3Pkgs.callPackage ./tortoise-orm.nix { }; ps = python3Pkgs.makePythonPath [ ircrobots tortoise-orm python3Pkgs.aiohttp ]; in { options.dgn-chatops = { enable = mkEnableOption "the ChatOps layer"; }; # Our ChatOps bot. config = mkIf cfg.enable { systemd.services.irc-takumi = { description = "DGNum IRC automation bot, Takumi"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; environment = { PYTHONPATH = ps; }; serviceConfig = { RuntimeDirectory = "takumi"; StateDirectory = "takumi"; DynamicUser = true; ExecStart = "${lib.getExe python3} ${./takumi.py}"; }; }; }; }