summaryrefslogtreecommitdiffstats
path: root/lass
diff options
context:
space:
mode:
Diffstat (limited to 'lass')
-rw-r--r--lass/1systems/prism/config.nix1
-rw-r--r--lass/2configs/fysiirc.nix51
2 files changed, 52 insertions, 0 deletions
diff --git a/lass/1systems/prism/config.nix b/lass/1systems/prism/config.nix
index c92a239f9..a082ea623 100644
--- a/lass/1systems/prism/config.nix
+++ b/lass/1systems/prism/config.nix
@@ -123,6 +123,7 @@ with import <stockholm/lib>;
<stockholm/lass/2configs/ciko.nix>
<stockholm/lass/2configs/container-networking.nix>
<stockholm/lass/2configs/jitsi.nix>
+ <stockholm/lass/2configs/fysiirc.nix>
{
services.tor = {
enable = true;
diff --git a/lass/2configs/fysiirc.nix b/lass/2configs/fysiirc.nix
new file mode 100644
index 000000000..d2aaa73c5
--- /dev/null
+++ b/lass/2configs/fysiirc.nix
@@ -0,0 +1,51 @@
+{ config, lib, pkgs, ... }:
+{
+ krebs.iptables.tables.filter.INPUT.rules = [
+ { predicate = "-p tcp --dport 44002"; target = "ACCEPT"; }
+ ];
+ krebs.reaktor2.fysiweb-github = {
+ hostname = "irc.libera.chat";
+ port = "6697";
+ useTLS = true;
+ nick = "fysiweb-github";
+ API.listen = "inet://127.0.0.1:44001";
+ plugins = [
+ {
+ plugin = "register";
+ config = {
+ channels = [
+ "#fysi"
+ ];
+ };
+ }
+ ];
+ };
+ krebs.htgen.fysiweb-github = {
+ port = 44002;
+ user = {
+ name = "reaktor2-fysiweb-github";
+ };
+ script = ''. ${pkgs.writeDash "github-irc" ''
+ case "$Method $Request_URI" in
+ "POST /")
+ payload=$(head -c "$req_content_length" \
+ | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' \
+ | xargs -0 echo -e \
+ )
+ ${pkgs.curl}/bin/curl -fsSv http://localhost:44001/ \
+ -H content-type:application/json \
+ -d "$(echo "$payload" | ${pkgs.jq}/bin/jq \
+ '{
+ command:"PRIVMSG",
+ params:["#fysi", "\(.action): \(.comment.html_url // .issue.html_url // .pull_request.html_url)"]
+ }'
+ )"
+ printf 'HTTP/1.1 200 OK\r\n'
+ printf 'Connection: close\r\n'
+ printf '\r\n'
+ exit
+ ;;
+ esac
+ ''}'';
+ };
+}