From 4a19e9c90b077f78321df59f9ebca29e68cb3317 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Tue, 4 Jun 2024 12:00:42 +0200 Subject: [PATCH] lib: get the base of WORK_PATH from app.ini instead of hardcoding forgejo-work-path to be the base of WORK_PATH relative to DIR, read it from the app.ini file. It will allow multiple Forgejo instances to run simultaneously, each using a different directory. --- actions/default-app.ini | 2 +- lib/lib.sh | 14 +++++++++++--- packages/alpine-app.ini | 2 +- storage/default-app.ini | 2 +- storage/specific-app.ini | 2 +- storage/stable-s3-app.ini | 2 +- upgrade/default-app.ini | 2 +- 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/actions/default-app.ini b/actions/default-app.ini index 7ef8df1..4f30f27 100644 --- a/actions/default-app.ini +++ b/actions/default-app.ini @@ -1,5 +1,5 @@ RUN_MODE = prod -WORK_PATH = ${WORK_PATH} +WORK_PATH = forgejo-work-path [server] APP_DATA_PATH = ${WORK_PATH}/data diff --git a/lib/lib.sh b/lib/lib.sh index dc1a319..8930e44 100644 --- a/lib/lib.sh +++ b/lib/lib.sh @@ -52,7 +52,7 @@ function dependencies() { if ! which make curl daemon git-lfs jq sqlite3 > /dev/null ; then $SUDO apt-get update -qq - $SUDO apt-get install -y -qq make curl daemon git-lfs jq sqlite3 gettext-base + $SUDO apt-get install -y -qq make curl daemon git-lfs jq sqlite3 fi if ! test -f /usr/local/bin/mc || ! test -f /usr/local/bin/minio ; then @@ -247,10 +247,18 @@ function start() { function reset_forgejo() { local config=$1 - local work_path=$DIR/forgejo-work-path + local work_path_base=$(sed -n -e 's/^WORK_PATH *= *\(.*\)/\1/p' < $config) + if test -z "$work_path_base" ; then + echo "no line found starting with WORK_PATH = in the file $config" + return 1 + fi + local work_path=$DIR/$work_path_base rm -fr $work_path mkdir -p $work_path - IP=$IP WORK_PATH=$work_path envsubst < $config > $work_path/app.ini + sed -e "s/\${IP}/$IP/g" \ + -e "s|\${WORK_PATH}|$work_path|g" \ + -e "s|^WORK_PATH = .*|WORK_PATH = $work_path|" \ + < $config > $work_path/app.ini } function reset_minio() { diff --git a/packages/alpine-app.ini b/packages/alpine-app.ini index 113f242..ee378c5 100644 --- a/packages/alpine-app.ini +++ b/packages/alpine-app.ini @@ -1,5 +1,5 @@ RUN_MODE = prod -WORK_PATH = ${WORK_PATH} +WORK_PATH = forgejo-work-path [server] APP_DATA_PATH = ${WORK_PATH}/data diff --git a/storage/default-app.ini b/storage/default-app.ini index 113f242..ee378c5 100644 --- a/storage/default-app.ini +++ b/storage/default-app.ini @@ -1,5 +1,5 @@ RUN_MODE = prod -WORK_PATH = ${WORK_PATH} +WORK_PATH = forgejo-work-path [server] APP_DATA_PATH = ${WORK_PATH}/data diff --git a/storage/specific-app.ini b/storage/specific-app.ini index 980a3b0..c30911e 100644 --- a/storage/specific-app.ini +++ b/storage/specific-app.ini @@ -1,5 +1,5 @@ RUN_MODE = prod -WORK_PATH = ${WORK_PATH} +WORK_PATH = forgejo-work-path [server] APP_DATA_PATH = ${WORK_PATH}/elsewhere diff --git a/storage/stable-s3-app.ini b/storage/stable-s3-app.ini index 667bfba..cedbfa5 100644 --- a/storage/stable-s3-app.ini +++ b/storage/stable-s3-app.ini @@ -1,5 +1,5 @@ RUN_MODE = prod -WORK_PATH = ${WORK_PATH} +WORK_PATH = forgejo-work-path [server] APP_DATA_PATH = ${WORK_PATH}/elsewhere diff --git a/upgrade/default-app.ini b/upgrade/default-app.ini index e8134aa..a39c034 100644 --- a/upgrade/default-app.ini +++ b/upgrade/default-app.ini @@ -1,5 +1,5 @@ RUN_MODE = prod -WORK_PATH = ${WORK_PATH} +WORK_PATH = forgejo-work-path [server] APP_DATA_PATH = ${WORK_PATH}/data