diff --git a/www/filebrowser/Makefile b/www/filebrowser/Makefile index d4674cd49cc2..58eefc1b7d46 100644 --- a/www/filebrowser/Makefile +++ b/www/filebrowser/Makefile @@ -1,49 +1,50 @@ PORTNAME= filebrowser DISTVERSIONPREFIX= v DISTVERSION= 2.32.0 +PORTREVISION= 1 CATEGORIES= www MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/ DISTFILES= ${PORTNAME}-${DISTVERSION}.frontend${EXTRACT_SUFX} MAINTAINER= dtxdf@FreeBSD.org COMMENT= Web File Browser WWW= https://filebrowser.org LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE USES= go:modules USE_GITHUB= yes USE_RC_SUBR= ${PORTNAME} GO_MOD_DIST= github GO_MODULE= github.com/filebrowser/${PORTNAME} GO_BUILDFLAGS= -ldflags "\ -X 'github.com/filebrowser/${PORTNAME}/v2/version.Version=${DISTVERSION}' \ -X 'github.com/filebrowser/${PORTNAME}/v2/version.CommitSHA=${GITID}'" SUB_LIST= USER=${USERS:[1]} USERS= ${FILEBROWSER_USER} GROUPS= ${FILEBROWSER_GROUP} PLIST_SUB= GROUP=${GROUPS:[1]} \ USER=${USERS:[1]} # Run 'git checkout ${DISTVERSIONPREFIX}${DISTVERSION} && git rev-parse HEAD' # in the File Browser repository to get the value of GITID. GITID= 3d6c5152fe22a4a47783253a3506a2930b7b6be3 FILEBROWSER_USER= ${PORTNAME} FILEBROWSER_GROUP= ${FILEBROWSER_USER} pre-build: @cd ${WRKDIR}/filebrowser-frontend && ${COPYTREE_SHARE} . ${WRKSRC}/frontend/dist post-install: .for dir in run log db @${MKDIR} ${STAGEDIR}/var/${dir}/${PORTNAME} .endfor .include 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 @@ -1,37 +1,49 @@ #!/bin/sh # PROVIDE: filebrowser # REQUIRE: LOGIN # KEYWORD: shutdown # # Configuration settings for File Browser in /etc/rc.conf # # filebrowser_enable (bool): Enable File Browser. (default=NO) # filebrowser_port (int): Port to listen on. (default=8080) # 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%%) # . /etc/rc.subr name="filebrowser" desc="Web File Browser" rcvar="${name}_enable" load_rc_config $name : ${filebrowser_enable:="NO"} : ${filebrowser_port:="8080"} : ${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"