diff options
author | Vincent Ambo <mail@tazj.in> | 2021-05-22T13·44+0200 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2021-05-22T19·40+0000 |
commit | 687f978b1c2b37f3a835f059181ee41ce44db539 (patch) | |
tree | 48a8926acb730b7b26c7e538b4e5689c0063673d | |
parent | 7fec80cb58c395add386dd1257005ae87a572c83 (diff) |
feat(ops/owothia): Add owothia module and deploy on whitby r/2606
This configures owothia to use her new bouncer to HackInt. Change-Id: I80eb8191c2b0f2a6f8a31d19b60250ade27c1913 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3129 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
-rw-r--r-- | ops/machines/whitby/default.nix | 8 | ||||
-rw-r--r-- | ops/modules/owothia.nix | 67 |
2 files changed, 75 insertions, 0 deletions
diff --git a/ops/machines/whitby/default.nix b/ops/machines/whitby/default.nix index d8594c43fbe4..66a0fe1b82fb 100644 --- a/ops/machines/whitby/default.nix +++ b/ops/machines/whitby/default.nix @@ -11,6 +11,7 @@ in { "${depot.path}/ops/modules/clbot.nix" "${depot.path}/ops/modules/irccat.nix" "${depot.path}/ops/modules/monorepo-gerrit.nix" + "${depot.path}/ops/modules/owothia.nix" "${depot.path}/ops/modules/panettone.nix" "${depot.path}/ops/modules/paroxysm.nix" "${depot.path}/ops/modules/smtprelay.nix" @@ -284,6 +285,13 @@ in { # Run the first cursed bot (quote bot) paroxysm.enable = true; + # Run the second cursed bot + owothia = { + enable = true; + ircServer = "localhost"; + ircPort = config.services.znc.config.Listener.l.Port; + }; + # Run irccat to forward messages to IRC irccat = { enable = true; diff --git a/ops/modules/owothia.nix b/ops/modules/owothia.nix new file mode 100644 index 000000000000..909481873704 --- /dev/null +++ b/ops/modules/owothia.nix @@ -0,0 +1,67 @@ +# Run the owothia IRC bot. +{ depot, config, lib, pkgs, ... }: + +let + cfg = config.services.depot.owothia; + description = "owothia - i'm a service owo"; +in { + options.services.depot.owothia = { + enable = lib.mkEnableOption description; + + secretsFile = lib.mkOption { + type = lib.types.str; + description = "File path from which systemd should read secrets"; + default = "/etc/secrets/owothia"; + }; + + owoChance = lib.mkOption { + type = lib.types.int; + description = "How likely is owo?"; + default = 200; + }; + + ircServer = lib.mkOption { + type = lib.types.str; + description = "IRC server hostname"; + }; + + ircPort = lib.mkOption { + type = lib.types.int; + description = "IRC server port"; + }; + + ircIdent = lib.mkOption { + type = lib.types.str; + description = "IRC username"; + default = "owothia"; + }; + + ircChannels = lib.mkOption { + type = with lib.types; listOf str; + description = "IRC channels to join"; + default = [ "#tvl" ]; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.owothia = { + inherit description; + script = "${depot.fun.owothia}/bin/owothia"; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + DynamicUser = true; + Restart = "always"; + EnvironmentFile = cfg.secretsFile; + }; + + environment = { + OWO_CHANCE = toString cfg.owoChance; + IRC_SERVER = cfg.ircServer; + IRC_PORT = toString cfg.ircPort; + IRC_IDENT = cfg.ircIdent; + IRC_CHANNELS = builtins.toJSON cfg.ircChannels; + }; + }; + }; +} |