git: 222d6d2fa62e - main - www/filebrowser: Add filebrowser_wwwdir parameter in rc script

From: Jesús Daniel Colmenares Oviedo <dtxdf_at_FreeBSD.org>
Date: Thu, 12 Jun 2025 07:57:23 UTC
The branch main has been updated by dtxdf:

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

commit 222d6d2fa62efcbd5c6cbaee19f214fcf332409d
Author:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
AuthorDate: 2025-06-12 07:39:24 +0000
Commit:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
CommitDate: 2025-06-12 07:53:38 +0000

    www/filebrowser: Add filebrowser_wwwdir parameter in rc script
    
    It is preferable to run File Browser in a dedicated, empty folder
    rather than the one it runs in, so it now uses WWWDIR by default.
    
    Approved by:    acm (mentor)
---
 www/filebrowser/Makefile             |  1 +
 www/filebrowser/files/filebrowser.in | 14 +++++++++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/www/filebrowser/Makefile b/www/filebrowser/Makefile
index d4674cd49cc2..58eefc1b7d46 100644
--- a/www/filebrowser/Makefile
+++ b/www/filebrowser/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	filebrowser
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.32.0
+PORTREVISION=	1
 CATEGORIES=	www
 MASTER_SITES=	LOCAL/dtxdf/${PORTNAME}/
 DISTFILES=	${PORTNAME}-${DISTVERSION}.frontend${EXTRACT_SUFX}
diff --git a/www/filebrowser/files/filebrowser.in b/www/filebrowser/files/filebrowser.in
index 2e6dbb3ff346..576b99086e83 100644
--- a/www/filebrowser/files/filebrowser.in
+++ b/www/filebrowser/files/filebrowser.in
@@ -11,6 +11,7 @@
 # filebrowser_address (str):     Address to listen on. (default=0.0.0.0)
 # filebrowser_database (str):    Database path. (default=/var/db/filebrowser/filebrowser.db)
 # filebrowser_log (str):         Log output. (default=/var/log/filebrowser/filebrowser.log)
+# filebrowser_wwwdir (str):      Root to prepend to relative paths. (default=%%WWWDIR%%)
 # filebrowser_runas (str):       User to run File Browser as. (default=%%USER%%)
 #
 
@@ -27,11 +28,22 @@ load_rc_config $name
 : ${filebrowser_address:="0.0.0.0"}
 : ${filebrowser_database:="/var/db/filebrowser/filebrowser.db"}
 : ${filebrowser_log:="/var/log/filebrowser/filebrowser.log"}
+: ${filebrowser_wwwdir:="%%WWWDIR%%"}
 : ${filebrowser_runas:="%%USER%%"}
 
 pidfile="/var/run/${name}/${name}.pid"
 procname="%%LOCALBASE%%/bin/${name}"
 command="/usr/sbin/daemon"
-command_args="-c -u ${filebrowser_runas} -p ${pidfile} -t \"${desc}\" ${procname} -d ${filebrowser_database} -p ${filebrowser_port} -a ${filebrowser_address} -l ${filebrowser_log}"
+command_args="-c -u ${filebrowser_runas} -p ${pidfile} -t \"${desc}\" ${procname} -d ${filebrowser_database} -p ${filebrowser_port} -a ${filebrowser_address} -l ${filebrowser_log} -r ${filebrowser_wwwdir}"
+start_precmd="filebrowser_prestart"
+
+filebrowser_prestart()
+{
+	if [ ! -d "${filebrowser_wwwdir}" ]; then
+		mkdir -p "${filebrowser_wwwdir}" &&
+		chown ${filebrowser_runas} "${filebrowser_wwwdir}" &&
+		chmod 0750 "${filebrowser_wwwdir}"
+	fi
+}
 
 run_rc_command "$1"