git: 2b8ec57a7b7d - main - net/akhq: Web GUI for Apache Kafka

From: Xavier Beaudouin <kiwi_at_FreeBSD.org>
Date: Fri, 07 Feb 2025 14:36:49 UTC
The branch main has been updated by kiwi:

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

commit 2b8ec57a7b7df4e3d54c83e5d1fb0cd5b71a1ed7
Author:     Sven Ruediger <admin@hackacad.net>
AuthorDate: 2025-02-07 13:01:06 +0000
Commit:     Xavier Beaudouin <kiwi@FreeBSD.org>
CommitDate: 2025-02-07 14:36:19 +0000

    net/akhq: Web GUI for Apache Kafka
    
    Kafka GUI for Apache Kafka to manage topics, topics data,
    consumers group, schema registry, connect and more...
    
    PR:             274149
    Sponsored by:   Klara, Inc.
    Approved by:    0mp (mentor, implicit)
    Co-authored-by: kiwi
    Co-authored-by: lwhsu
    Differential Revision:  https://reviews.freebsd.org/D48882
---
 net/Makefile                   |  1 +
 net/akhq/Makefile              | 39 +++++++++++++++++++++++++++++++++++++++
 net/akhq/distinfo              |  3 +++
 net/akhq/files/akhq.in         | 40 ++++++++++++++++++++++++++++++++++++++++
 net/akhq/files/application.yml |  9 +++++++++
 net/akhq/pkg-descr             |  2 ++
 6 files changed, 94 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index 9381b51d8f3c..1f9f1bf578dc 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -10,6 +10,7 @@
     SUBDIR += addrwatch
     SUBDIR += afpfs-ng
     SUBDIR += aget
+    SUBDIR += akhq
     SUBDIR += akonadi-calendar
     SUBDIR += akonadi-contacts
     SUBDIR += akonadi-mime
diff --git a/net/akhq/Makefile b/net/akhq/Makefile
new file mode 100644
index 000000000000..1a8cb7ad331b
--- /dev/null
+++ b/net/akhq/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	akhq
+DISTVERSION=	0.25.1
+DISTVERSIONSUFFIX= -all
+CATEGORIES=	net java
+MASTER_SITES=	https://github.com/tchiotludo/akhq/releases/download/${PORTVERSION}/
+EXTRACT_SUFX=	.jar
+
+MAINTAINER=	freebsd@hackacad.net
+COMMENT=	AKHQ (previously known as KafkaHQ)
+WWW=		https://github.com/tchiotludo/akhq
+
+LICENSE=	APACHE20
+
+USES=		java
+JAVA_VERSION=	17+
+USE_RC_SUBR=	akhq
+
+NO_ARCH=	yes
+NO_BUILD=	yes
+
+PLIST_FILES=	${JAVASHAREDIR}/${PORTNAME}/${PORTNAME}.jar
+
+CONFIG_FILES=	application.yml
+
+NO_EXTRACT=	yes
+
+do-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/etc/akhq
+	${MKDIR} ${STAGEDIR}${JAVASHAREDIR}/${PORTNAME}
+	${INSTALL_DATA} ${DISTDIR}/${DISTFILES} ${STAGEDIR}${JAVASHAREDIR}/${PORTNAME}/${PORTNAME}.jar
+	${INSTALL_DATA} ${FILESDIR}/application.yml ${STAGEDIR}${PREFIX}/etc/akhq/application.yml.sample
+	${ECHO} "@sample ${PREFIX}/etc/akhq/application.yml.sample" >> ${TMPPLIST}
+
+post-install:
+	@if [ ! -f ${STAGEDIR}${PREFIX}/etc/akhq/application.yml ]; then \
+		${CP} -p ${STAGEDIR}${PREFIX}/etc/akhq/application.yml.sample ${STAGEDIR}${PREFIX}/etc/akhq/application.yml ; \
+	fi
+
+.include <bsd.port.mk>
diff --git a/net/akhq/distinfo b/net/akhq/distinfo
new file mode 100644
index 000000000000..1fa3cd31328d
--- /dev/null
+++ b/net/akhq/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1734718291
+SHA256 (akhq-0.25.1-all.jar) = 5aec420df890e388ade89c6995e6ed45a37d3cb1ff22f5d9837b1156ff4eaf72
+SIZE (akhq-0.25.1-all.jar) = 191995582
diff --git a/net/akhq/files/akhq.in b/net/akhq/files/akhq.in
new file mode 100644
index 000000000000..d6556c5f5e67
--- /dev/null
+++ b/net/akhq/files/akhq.in
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# PROVIDE: akhq
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name=akhq
+rcvar=akhq_enable
+
+load_rc_config $name
+
+: ${akhq_enable:=NO}
+: ${akhq_config:=%%LOCALBASE%%/etc/akhq/application.yml}
+: ${akhq_jar:=%%LOCALBASE%%/share/java/akhq/akhq.jar}
+: ${akhq_java:=%%LOCALBASE%%/bin/java}
+: ${akhq_user:=www}
+: ${akhq_pidfile:=/var/run/${name}.pid}
+
+command="/usr/sbin/daemon"
+command_args="-P ${akhq_pidfile} -r -f ${akhq_java} -Dmicronaut.config.files=${akhq_config} -jar ${akhq_jar}"
+
+start_precmd=akhq_startprecmd
+
+akhq_startprecmd()
+{
+    # Ensure the directory for the PID file exists
+    if [ ! -d $(dirname ${akhq_pidfile}) ]; then
+        install -d -o ${akhq_user} -m 0750 $(dirname ${akhq_pidfile})
+    fi
+
+    # Ensure the PID file exists with the right permissions
+    if [ ! -e "${akhq_pidfile}" ]; then
+        install -m 0600 -o ${akhq_user} /dev/null ${akhq_pidfile}
+    fi
+}
+
+run_rc_command "$1"
+
diff --git a/net/akhq/files/application.yml b/net/akhq/files/application.yml
new file mode 100644
index 000000000000..d80404d95c04
--- /dev/null
+++ b/net/akhq/files/application.yml
@@ -0,0 +1,9 @@
+akhq:
+  connections:
+    local:
+      properties:
+        bootstrap.servers: "localhost:9092"
+micronaut:
+  server:
+    port: 8080
+    host: "0.0.0.0"
diff --git a/net/akhq/pkg-descr b/net/akhq/pkg-descr
new file mode 100644
index 000000000000..71e2a94dda75
--- /dev/null
+++ b/net/akhq/pkg-descr
@@ -0,0 +1,2 @@
+Kafka GUI for Apache Kafka to manage topics, topics data,
+consumers group, schema registry, connect and more...