summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/scripts
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-05 14:50:38 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-05 14:50:38 +0200
commite8bb95cb35ed1b02a85cf7cbea5bfc20fe0324c2 (patch)
tree1f3992d8045437774767556bf20d053b947ed164 /opendc-web/opendc-web-ui/scripts
parent3c805a50ca710e123aa18ad1bfa01ea4f1ee40d2 (diff)
build: Support runtime variables in frontend Docker image
This change adds support for dynamically specifying various variables for the frontend Docker image through environmental variables. Previously, these were embedded directly into the source code, which requires rebuilding the entire image to change these variables.
Diffstat (limited to 'opendc-web/opendc-web-ui/scripts')
-rwxr-xr-xopendc-web/opendc-web-ui/scripts/envsubst-html.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/opendc-web/opendc-web-ui/scripts/envsubst-html.sh b/opendc-web/opendc-web-ui/scripts/envsubst-html.sh
new file mode 100755
index 00000000..8ca12e8a
--- /dev/null
+++ b/opendc-web/opendc-web-ui/scripts/envsubst-html.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+# We can use simple version of envsubst execution as
+# envsubst < /usr/share/nginx/html/index.html.template > /usr/share/nginx/html/index.html
+# but it replaces everything that looks like environment variable substitution
+# so it affects `default values` approach.
+# we need to replace only provided environment variables.
+
+auto_envsubst() {
+ template_path="/usr/share/nginx/html/index.html.template"
+ output_path="/usr/share/nginx/html/index.html"
+ defined_envs=$(printf '${%s} ' $(env | cut -d= -f1))
+ envsubst "$defined_envs" < "$template_path" > "$output_path"
+}
+
+auto_envsubst
+exit 0