tvl-depot/ops/modules/teleirc.nix
Vincent Ambo 61cf4905fe feat(ops/modules): launch teleirc for Volga Sprint
For the duration of the sprint, this bot will take care of
synchronising the IRC channel with the Telegram group.

After the sprint, it will be removed again.

Change-Id: I6d5b1316fc85ddd26adf55e31f6bff742907fc24
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11727
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-05-26 19:36:29 +00:00

40 lines
1.2 KiB
Nix

# Run the Telegram<>IRC sync bot for the Volga Sprint channel.
#
# This module is written in a pretty ad-hoc style, as it is sort of a
# throwaway thing (will be removed again after the event).
{ depot, config, lib, pkgs, ... }:
let
cfg = config.services.depot.owothia;
description = "IRC<>Telegram sync for Volga Sprint channel";
configFile = builtins.toFile "teleirc.env" ''
# connect through tvlbot's ZNC bouncer
IRC_SERVER="localhost"
IRC_PORT=2627
IRC_USE_SSL=false
IRC_CHANNEL="#volgasprint"
IRC_BLACKLIST="tvlbot"
IRC_BOT_NAME="tvlbot"
IRC_BOT_REALNAME="TVL bot for Volga Sprint"
IRC_BOT_IDENT="tvlbot"
IRC_SEND_STICKER_EMOJI=false # look into this
TELEGRAM_CHAT_ID=-1002153072030
'';
in
{
options.services.depot.teleirc.enable = lib.mkEnableOption description;
config = lib.mkIf cfg.enable {
systemd.services.teleirc = {
inherit description;
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
Restart = "always";
EnvironmentFile = "/run/agenix/teleirc";
ExecStart = "${depot.third_party.teleirc}/bin/teleirc -conf ${configFile}";
};
};
};
}