mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 19:17:13 -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
 |