git: 7cba85912f1e - main - archivers/unpackerr: New port

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Tue, 30 Sep 2025 20:33:07 UTC
The branch main has been updated by bofh:

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

commit 7cba85912f1e62a0c37d6a9bab56df4f43ba7e60
Author:     Manuel Wiesinger <mdw@freebsd.org>
AuthorDate: 2025-09-30 14:24:44 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2025-09-30 20:33:00 +0000

    archivers/unpackerr: New port
    
    Unpackerr is an application that runs on Windows, macOS, Linux, FreeBSD
    and in Docker. You can use it to watch a download folder and extract new
    items. The more common use is to watch starr apps (radarr, sonarr,
    readarr, lidarr, whisparr) and extract items they download. It can do
    both, at the same time even.
    
    WWW:    https://unpackerr.zip
---
 GIDs                                   |  2 +-
 UIDs                                   |  2 +-
 archivers/Makefile                     |  1 +
 archivers/unpackerr/Makefile           | 43 +++++++++++++++++++++++++++++
 archivers/unpackerr/distinfo           |  5 ++++
 archivers/unpackerr/files/unpackerr.in | 49 ++++++++++++++++++++++++++++++++++
 archivers/unpackerr/pkg-descr          |  5 ++++
 7 files changed, 105 insertions(+), 2 deletions(-)

diff --git a/GIDs b/GIDs
index d3ed7124e989..baf5d560773a 100644
--- a/GIDs
+++ b/GIDs
@@ -315,7 +315,7 @@ reposilite:*:371:
 beam:*:372:
 mautrix-whatsapp:*:373:
 traccar:*:374:
-# free: 375
+unpackerr:*:375:
 # free: 376
 hostd:*:377:
 walletd:*:378:
diff --git a/UIDs b/UIDs
index 899042c0c23a..db734a200d8a 100644
--- a/UIDs
+++ b/UIDs
@@ -321,7 +321,7 @@ reposilite:*:371:371::0:0:Reposilite user:/nonexistent:/usr/sbin/nologin
 beam:*:372:372::0:0:Erlang BEAM VM user:/nonexistent:/usr/sbin/nologin
 mautrix-whatsapp:*:373:373::0:0:Mautrix-Whatsapp Daemon:/nonexistent:/usr/sbin/nologin
 traccar:*:374:374::0:0:Traccar GPS Tracking Platform:/nonexistent:/usr/sbin/nologin
-# free: 375
+unpackerr:*:375:375::0:0:Unpackerr Daemon:/nonexistent:/usr/sbin/nologin
 # free: 376
 hostd:*:377:377::0:0:hostd Daemon:/nonexistent:/usr/sbin/nologin
 walletd:*:378:378::0:0:walletd Daemon:/nonexistent:/usr/sbin/nologin
diff --git a/archivers/Makefile b/archivers/Makefile
index 759464313a16..9a4af30b138f 100644
--- a/archivers/Makefile
+++ b/archivers/Makefile
@@ -277,6 +277,7 @@
     SUBDIR += undms
     SUBDIR += unfoo
     SUBDIR += unlzx
+    SUBDIR += unpackerr
     SUBDIR += unmakeself
     SUBDIR += unmass
     SUBDIR += unrar
diff --git a/archivers/unpackerr/Makefile b/archivers/unpackerr/Makefile
new file mode 100644
index 000000000000..489b0bf67f48
--- /dev/null
+++ b/archivers/unpackerr/Makefile
@@ -0,0 +1,43 @@
+PORTNAME=	unpackerr
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.14.5
+CATEGORIES=	archivers
+
+MAINTAINER=	mdw@FreeBSD.org
+COMMENT=	Extracts downloads for Radarr, Sonarr, Lidarr or Readarr
+WWW=		https://unpackerr.zip
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	go-md2man:textproc/go-md2man
+
+USES=		go:modules
+USE_RC_SUBR=	unpackerr
+
+GO_MODULE=	github.com/Unpackerr/unpackerr
+
+USERS=		unpackerr
+GROUPS=		unpackerr
+
+PLIST_FILES=	bin/${PORTNAME} \
+		share/man/man1/unpackerr.1.gz \
+		"@sample ${ETCDIR_REL}/unpackerr.conf.sample"
+PORTDOCS=	README.md
+
+OPTIONS_DEFINE=	DOCS
+
+post-build:
+	go-md2man -in ${WRKSRC}/examples/MANUAL.md -out ${WRKSRC}/examples/unpackerr.1
+	${GZIP_CMD} ${WRKSRC}/examples/unpackerr.1
+
+post-install:
+	${MKDIR} ${STAGEDIR}${ETCDIR}
+	${INSTALL_DATA} ${WRKSRC}/examples/unpackerr.conf.example ${STAGEDIR}${ETCDIR}/unpackerr.conf.sample
+	${INSTALL_MAN} ${WRKSRC}/examples/unpackerr.1.gz ${STAGEDIR}${PREFIX}/share/man/man1/
+
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}/
+
+.include <bsd.port.mk>
diff --git a/archivers/unpackerr/distinfo b/archivers/unpackerr/distinfo
new file mode 100644
index 000000000000..f859e97acd3c
--- /dev/null
+++ b/archivers/unpackerr/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1759263836
+SHA256 (go/archivers_unpackerr/unpackerr-v0.14.5/v0.14.5.mod) = 398c880324fd0261e639105a31d5149a8e92457454aac443e511a321a5b24cf8
+SIZE (go/archivers_unpackerr/unpackerr-v0.14.5/v0.14.5.mod) = 3148
+SHA256 (go/archivers_unpackerr/unpackerr-v0.14.5/v0.14.5.zip) = 25c7d38d3a70f3171076bef30980b8da783dc8cf049f0ddd2830f3045516f7d2
+SIZE (go/archivers_unpackerr/unpackerr-v0.14.5/v0.14.5.zip) = 655980
diff --git a/archivers/unpackerr/files/unpackerr.in b/archivers/unpackerr/files/unpackerr.in
new file mode 100644
index 000000000000..af63a6d0cf09
--- /dev/null
+++ b/archivers/unpackerr/files/unpackerr.in
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# PROVIDE: unpackerr
+# REQUIRE: LOGIN NETWORKING
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable unpackerr:
+# unpackerr_enable (bool):	Set to "NO" by default.
+#		Set it to "YES" to enable unpackerr
+# unpackerr_configfile (str):	Set to "%%PREFIX%%/etc/unpackerr.conf" by default.
+#		Configuration file for unpackerr
+# unpackerr_user (str):		Set to "unpackerr" by default.
+#		User to run unpackerr
+
+. /etc/rc.subr
+
+name=unpackerr
+rcvar=unpackerr_enable
+
+start_precmd="${name}_precmd"
+stop_postcmd="${name}_postcmd"
+configtest_cmd="${name}_configtest"
+
+load_rc_config ${name}
+
+: ${unpackerr_enable:="no"}
+: ${unpackerr_configfile:="%%PREFIX%%/etc/unpackerr/unpackerr.conf"}
+: ${unpackerr_user:="unpackerr"}
+
+procname="%%PREFIX%%/bin/unpackerr"
+pidfile="/var/run/${name}.pid"
+daemonpidfile="/var/run/daemon_${name}.pid"
+required_files="${unpackerr_configfile}"
+command="/usr/sbin/daemon"
+
+unpackerr_precmd()
+{
+    rc_flags="-p ${pidfile} -P ${daemonpidfile} -f ${procname} -c ${unpackerr_configfile} ${rc_flags}"
+
+    /usr/bin/install -m 600 -o ${unpackerr_user} /dev/null $pidfile
+    /usr/bin/install -m 600 -o ${unpackerr_user} /dev/null $daemonpidfile
+}
+
+unpackerr_postcmd()
+{
+    rm -f $pidfile $daemonpidfile
+}
+
+run_rc_command "$1"
diff --git a/archivers/unpackerr/pkg-descr b/archivers/unpackerr/pkg-descr
new file mode 100644
index 000000000000..6cd65d9f8ab1
--- /dev/null
+++ b/archivers/unpackerr/pkg-descr
@@ -0,0 +1,5 @@
+Unpackerr is an application that runs on Windows, macOS, Linux, FreeBSD and in
+Docker. You can use it to watch a download folder and extract new items. The
+more common use is to watch starr apps (radarr, sonarr, readarr, lidarr,
+whisparr) and extract items they download. It can do both, at the same time
+even.