Prechádzať zdrojové kódy

Safer and flexible boolean env vars

Jamie Curnow 3 mesiacov pred
rodič
commit
54d463ac36

+ 6 - 6
docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh

@@ -28,7 +28,7 @@ chownit() {
 
 	local have
 	have="$(stat -c '%u:%g' "$dir")"
-	echo -n "- $dir ... "
+	echo "- $dir ... "
 
 	if [ "$have" != "$PUID:$PGID" ]; then
 		if [ "$recursive" = 'true' ] && [ -d "$dir" ]; then
@@ -36,9 +36,9 @@ chownit() {
 		else
 			chown "$PUID:$PGID" "$dir"
 		fi
-		echo "DONE"
+		echo "    DONE"
 	else
-		echo "SKIPPED"
+		echo "    SKIPPED"
 	fi
 }
 
@@ -46,7 +46,9 @@ for loc in "${locations[@]}"; do
 	chownit "$loc"
 done
 
-if [ "${SKIP_CERTBOT_OWNERSHIP:-}" != "true" ]; then
+if [ "$(is_true "${SKIP_CERTBOT_OWNERSHIP:-}")" = '1' ]; then
+	log_info 'Skipping ownership change of certbot directories'
+else
 	log_info 'Changing ownership of certbot directories, this may take some time ...'
 	chownit "/opt/certbot" false
 	chownit "/opt/certbot/bin" false
@@ -55,6 +57,4 @@ if [ "${SKIP_CERTBOT_OWNERSHIP:-}" != "true" ]; then
 	find /opt/certbot/lib -type d -name "site-packages" | while read -r SITE_PACKAGES_DIR; do
 		chownit "$SITE_PACKAGES_DIR"
 	done
-else
-	log_info 'Skipping ownership change of certbot directories'
 fi

+ 1 - 4
docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/40-dynamic.sh

@@ -5,12 +5,9 @@ set -e
 
 log_info 'Dynamic resolvers ...'
 
-DISABLE_IPV6=$(echo "${DISABLE_IPV6:-}" | tr '[:upper:]' '[:lower:]')
-
 # Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]`
 # thanks @tfmm
-if [ "$DISABLE_IPV6" == "true" ] || [ "$DISABLE_IPV6" == "on" ] || [ "$DISABLE_IPV6" == "1" ] || [ "$DISABLE_IPV6" == "yes" ];
-then
+if [ "$(is_true "$DISABLE_IPV6")" = '1' ]; then
 	echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) ipv6=off valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf
 else
 	echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf

+ 1 - 4
docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh

@@ -8,14 +8,11 @@ set -e
 
 log_info 'IPv6 ...'
 
-# Lowercase
-DISABLE_IPV6=$(echo "${DISABLE_IPV6:-}" | tr '[:upper:]' '[:lower:]')
-
 process_folder () {
 	FILES=$(find "$1" -type f -name "*.conf")
 	SED_REGEX=
 
-	if [ "$DISABLE_IPV6" == "true" ] || [ "$DISABLE_IPV6" == "on" ] || [ "$DISABLE_IPV6" == "1" ] || [ "$DISABLE_IPV6" == "yes" ]; then
+	if [ "$(is_true "$DISABLE_IPV6")" = '1' ]; then
 		# IPV6 is disabled
 		echo "Disabling IPV6 in hosts in: $1"
 		SED_REGEX='s/^([^#]*)listen \[::\]/\1#listen [::]/g'

+ 10 - 0
docker/rootfs/usr/bin/common.sh

@@ -56,3 +56,13 @@ get_group_id () {
 		getent group "$1" | cut -d: -f3
 	fi
 }
+
+# param $1: value
+is_true () {
+	VAL=$(echo "${1:-}" | tr '[:upper:]' '[:lower:]')
+	if [ "$VAL" == 'true' ] || [ "$VAL" == 'on' ] || [ "$VAL" == '1' ] || [ "$VAL" == 'yes' ]; then
+		echo '1'
+	else
+		echo '0'
+	fi
+}