mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-03-31 13:35:08 -05:00
43 lines
1.2 KiB
Bash
43 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Scans the environment variables for those with the suffix _FILE
|
|
# When located, checks the file exists, and exports the contents
|
|
# of the file as the same name, minus the suffix
|
|
# This allows the use of Docker secrets or mounted files
|
|
# to fill in any of the settings configurable via environment
|
|
# variables
|
|
|
|
set -eu
|
|
|
|
for line in $(printenv)
|
|
do
|
|
# Extract the name of the environment variable
|
|
env_name=${line%%=*}
|
|
# Check if it starts with "PAPERLESS_" and ends in "_FILE"
|
|
if [[ ${env_name} == PAPERLESS_*_FILE ]]; then
|
|
# This should have been named different..
|
|
if [[ ${env_name} == "PAPERLESS_OCR_SKIP_ARCHIVE_FILE" || ${env_name} == "PAPERLESS_MODEL_FILE" ]]; then
|
|
continue
|
|
fi
|
|
# Extract the value of the environment
|
|
env_value=${line#*=}
|
|
|
|
# Check the file exists
|
|
if [[ -f ${env_value} ]]; then
|
|
|
|
# Trim off the _FILE suffix
|
|
non_file_env_name=${env_name%"_FILE"}
|
|
echo "Setting ${non_file_env_name} from file"
|
|
|
|
# Reads the value from th file
|
|
val="$(< "${!env_name}")"
|
|
|
|
# Sets the normal name to the read file contents
|
|
export "${non_file_env_name}"="${val}"
|
|
|
|
else
|
|
echo "File ${env_value} referenced by ${env_name} doesn't exist"
|
|
fi
|
|
fi
|
|
done
|