Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 May 2026 09:32:02 +0000
From:      Dave Cottlehuber <dch@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: a16ce8206fe0 - main - irc/irccat: new port: IRC client daemon with scripting & webhook support
Message-ID:  <6a180b92.30b56.1bc46487@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by dch:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a16ce8206fe0b1d2de2bdd1a99aafae627fa907d

commit a16ce8206fe0b1d2de2bdd1a99aafae627fa907d
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2026-05-28 09:30:32 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2026-05-28 09:30:32 +0000

    irc/irccat: new port: IRC client daemon with scripting & webhook support
    
    Sponsored by:   SkunkWerks, GmbH
---
 irc/Makefile                    |  1 +
 irc/irccat/Makefile             | 28 ++++++++++++++++++++++
 irc/irccat/distinfo             |  5 ++++
 irc/irccat/files/irccat.in      | 53 +++++++++++++++++++++++++++++++++++++++++
 irc/irccat/files/pkg-message.in | 25 +++++++++++++++++++
 irc/irccat/pkg-descr            |  9 +++++++
 6 files changed, 121 insertions(+)

diff --git a/irc/Makefile b/irc/Makefile
index d3bcbfcdf64a..b31d2f5c8211 100644
--- a/irc/Makefile
+++ b/irc/Makefile
@@ -29,6 +29,7 @@
     SUBDIR += irc
     SUBDIR += irc2dc
     SUBDIR += ircII
+    SUBDIR += irccat
     SUBDIR += ircd-hybrid
     SUBDIR += ircd-ratbox
     SUBDIR += ircproxy
diff --git a/irc/irccat/Makefile b/irc/irccat/Makefile
new file mode 100644
index 000000000000..e78f61812664
--- /dev/null
+++ b/irc/irccat/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	irccat
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.4.13
+CATEGORIES=	irc
+
+MAINTAINER=	dch@FreeBSD.org
+COMMENT=	Send events to IRC channels from scripts and other applications
+WWW=		https://github.com/irccloud/irccat
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+USE_RC_SUBR=	irccat
+
+GO_MODULE=	github.com/irccloud/irccat
+
+SUB_FILES=	pkg-message
+
+PLIST_FILES=	"@sample ${ETCDIR}/irccat.yaml.sample" \
+		bin/${PORTNAME}
+
+post-install:
+	@${MKDIR} ${STAGEDIR}${ETCDIR}
+	${INSTALL_DATA} ${WRKSRC}/examples/irccat.json \
+		${STAGEDIR}${ETCDIR}/irccat.yaml.sample
+
+.include <bsd.port.mk>
diff --git a/irc/irccat/distinfo b/irc/irccat/distinfo
new file mode 100644
index 000000000000..6f9aafb0386c
--- /dev/null
+++ b/irc/irccat/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1779022850
+SHA256 (go/irc_irccat/irccat-v0.4.13/v0.4.13.mod) = cdf4a61e165e6bac97b61eae2eeb106ecca73f6c0ce144c1db8f674a467eea10
+SIZE (go/irc_irccat/irccat-v0.4.13/v0.4.13.mod) = 1148
+SHA256 (go/irc_irccat/irccat-v0.4.13/v0.4.13.zip) = e52d4eff830eb173eef4b615665659766f49bc4b84e58cbf7c5aaa33c03b1726
+SIZE (go/irc_irccat/irccat-v0.4.13/v0.4.13.zip) = 55888
diff --git a/irc/irccat/files/irccat.in b/irc/irccat/files/irccat.in
new file mode 100644
index 000000000000..a34ed287bbb2
--- /dev/null
+++ b/irc/irccat/files/irccat.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# PROVIDE: irccat
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# irccat_enable (bool):	Set to NO by default.
+#			Set it to YES to enable irccat.
+# irccat_user (str):	Set user to run irccat as.
+#			Default is "uucp".
+# irccat_group (str):	Set group to run irccat as.
+#			Default is "uucp".
+# irccat_config (str):	Path to the irccat configuration file.
+#			Default is "%%ETCDIR%%/irccat.yaml".
+# irccat_flags (str):	Extra flags passed to irccat.
+
+. /etc/rc.subr
+
+name=irccat
+rcvar=irccat_enable
+
+load_rc_config $name
+
+: ${irccat_enable:="NO"}
+: ${irccat_user:="uucp"}
+: ${irccat_group:="uucp"}
+: ${irccat_config:="%%ETCDIR%%/irccat.yaml"}
+
+piddir="/var/run/${name}"
+pidfile="${piddir}/${name}.pid"
+daemon_pidfile="${piddir}/${name}_daemon.pid"
+required_files="${irccat_config}"
+procname="%%PREFIX%%/bin/${name}"
+command="/usr/sbin/daemon"
+command_args="-f -P ${daemon_pidfile} -p ${pidfile} -t ${name} ${procname} -config ${irccat_config} ${irccat_flags}"
+
+start_precmd="${name}_prestart"
+
+irccat_prestart()
+{
+	if [ ! -d "${piddir}" ]; then
+		install -d -o "${irccat_user}" -g "${irccat_group}" -m 0755 \
+			"${piddir}" || return 1
+	else
+		chown "${irccat_user}:${irccat_group}" "${piddir}" || return 1
+	fi
+	return 0
+}
+
+run_rc_command "$1"
diff --git a/irc/irccat/files/pkg-message.in b/irc/irccat/files/pkg-message.in
new file mode 100644
index 000000000000..4b94686e71bd
--- /dev/null
+++ b/irc/irccat/files/pkg-message.in
@@ -0,0 +1,25 @@
+[
+{ type: install
+  message: <<EOM
+To configure irccat:
+
+Modify the default config file in %%ETCDIR%%/irccat.yaml as required, setting
+at least IRC server, nick, and any required channels.
+
+See https://github.com/irccloud/irccat for full documentation.
+
+To run irccat as a daemon, enable it in /etc/rc.conf:
+
+	service irccat enable
+	service irccat start
+
+By default irccat runs as user/group "uucp". Override with
+irccat_user / irccat_group in /etc/rc.conf if you want a
+different account.
+
+Test that messages reach IRC:
+
+echo "#yourchannel Hello from irccat" | nc localhost 12345
+EOM
+}
+]
diff --git a/irc/irccat/pkg-descr b/irc/irccat/pkg-descr
new file mode 100644
index 000000000000..ee2646c10fcb
--- /dev/null
+++ b/irc/irccat/pkg-descr
@@ -0,0 +1,9 @@
+irccat lets you easily send events to IRC channels from scripts and other
+applications.
+
+Features:
+
+- TCP listener: cat strings to a TCP port and have them sent to IRC
+- HTTP listener: send messages and trigger commands via HTTP
+- Webhooks: receive events from GitHub, GitLab, Sentry, Grafana, and more
+- Commands: trigger external scripts via IRC messages


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a180b92.30b56.1bc46487>