From 3a220d38b56af1286fe978f55c947eb514cadc1a Mon Sep 17 00:00:00 2001 From: throwaway Date: Wed, 24 Apr 2024 16:11:49 -0700 Subject: [PATCH] fix treatment of config values with default of null and add php sodium --- Dockerfile | 2 +- docker/docker-entrypoint.sh | 2 +- docker/gen_config.php | 20 +++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index bb0e98b..8ee52cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM alpine:latest WORKDIR /var/www/html/4get RUN apk update && apk upgrade -RUN apk add php apache2-ssl php83-fileinfo php83-openssl php83-iconv php83-common php83-dom php83-curl curl php83-pecl-apcu php83-apache2 imagemagick php83-pecl-imagick php-mbstring imagemagick-webp imagemagick-jpeg +RUN apk add php apache2-ssl php83-fileinfo php83-openssl php83-iconv php83-common php83-dom php83-sodium php83-curl curl php83-pecl-apcu php83-apache2 imagemagick php83-pecl-imagick php-mbstring imagemagick-webp imagemagick-jpeg COPY ./docker/apache/ /etc/apache2/ COPY . . diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index bdb706a..66d4067 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -9,7 +9,7 @@ FOURGET_PROTO="${FOURGET_PROTO#\"}" FOURGET_PROTO=`echo $FOURGET_PROTO | awk '{print tolower($0)}'` -if [ "$FOURGET_PROTO" = "https" ] || [ -f /etc/4get/certs/fullchain.pem ] || [ -f /etc/4get/certs/privkey.pem ]; then +if [ "$FOURGET_PROTO" = "https" ]; then echo "Using https configuration" cp /etc/apache2/https.conf /etc/apache2/httpd.conf else diff --git a/docker/gen_config.php b/docker/gen_config.php index cc43916..ceea117 100644 --- a/docker/gen_config.php +++ b/docker/gen_config.php @@ -61,16 +61,18 @@ $output = " $val){ if(!in_array($key, $special_keys)) { - + $stored_value = $val; // conversion between arrays and comma separated env value. - // If original type of field is array and there is a type mismatch such as when a comma separted string is passed, - // then split on comma if string and not numeric - if(gettype($from_config[$key]) != gettype($val) && !is_numeric($val)) { - $data = gettype($val) === "string" ? explode(",", $val) : $val; - $output = $output . "\tconst " . $key . " = " . type_to_string($data) . ";\n"; - } else { - $output = $output . "\tconst " . $key . " = " . type_to_string($val) . ";\n"; - } + // Handle case when original type of field is array and there is a type mismatch when a comma separted string is passed, + // then split on comma if string (and not numeric, boolean, null, etc) + // + // except in the case where the inital value in default config is null. Assuming null + // in default config will be never be assigned an array + + if(gettype($from_config[$key]) != gettype($val) && !is_numeric($val) && !is_null($from_config[$key])) { + $stored_value = explode(",", $val); + } + $output = $output . "\tconst " . $key . " = " . type_to_string($stored_value) . ";\n"; continue; }