118 lines
2.3 KiB
Bash
118 lines
2.3 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
shopt -s nullglob
|
||
|
|
||
|
###
|
||
|
# Check if current user is root
|
||
|
#
|
||
|
##
|
||
|
function rootCheck() {
|
||
|
# Root check
|
||
|
if [ "$(/usr/bin/whoami)" != "root" ]; then
|
||
|
echo "[ERROR] $* must be run as root"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
###
|
||
|
# Create /docker.stdout and /docker.stderr
|
||
|
#
|
||
|
##
|
||
|
function createDockerStdoutStderr() {
|
||
|
# link stdout from docker
|
||
|
if [[ -n "$LOG_STDOUT" ]]; then
|
||
|
echo "Log stdout redirected to $LOG_STDOUT"
|
||
|
else
|
||
|
LOG_STDOUT="/proc/$$/fd/1"
|
||
|
fi
|
||
|
|
||
|
if [[ -n "$LOG_STDERR" ]]; then
|
||
|
echo "Log stderr redirected to $LOG_STDERR"
|
||
|
else
|
||
|
LOG_STDERR="/proc/$$/fd/2"
|
||
|
fi
|
||
|
|
||
|
ln -f -s "$LOG_STDOUT" /docker.stdout
|
||
|
ln -f -s "$LOG_STDERR" /docker.stderr
|
||
|
}
|
||
|
###
|
||
|
# Include script directory text inside a file
|
||
|
#
|
||
|
# $1 -> path
|
||
|
#
|
||
|
##
|
||
|
function includeScriptDir() {
|
||
|
if [[ -d "$1" ]]; then
|
||
|
for FILE in "$1"/*.sh; do
|
||
|
echo "-> Executing ${FILE}"
|
||
|
# run custom scripts, only once
|
||
|
. "$FILE"
|
||
|
done
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
###
|
||
|
# Show deprecation notice
|
||
|
#
|
||
|
##
|
||
|
function deprecationNotice() {
|
||
|
echo ""
|
||
|
echo "###############################################################################"
|
||
|
echo "### THIS CALL IS DEPRECATED AND WILL BE REMOVED IN THE FUTURE"
|
||
|
echo "###"
|
||
|
echo "### $*"
|
||
|
echo "###"
|
||
|
echo "###############################################################################"
|
||
|
echo ""
|
||
|
}
|
||
|
|
||
|
###
|
||
|
# Run "entrypoint" scripts
|
||
|
##
|
||
|
function runEntrypoints() {
|
||
|
###############
|
||
|
# Try to find entrypoint
|
||
|
###############
|
||
|
|
||
|
ENTRYPOINT_SCRIPT="/opt/docker/bin/entrypoint.d/${TASK}.sh"
|
||
|
|
||
|
if [ -f "$ENTRYPOINT_SCRIPT" ]; then
|
||
|
. "$ENTRYPOINT_SCRIPT"
|
||
|
fi
|
||
|
|
||
|
###############
|
||
|
# Run default
|
||
|
###############
|
||
|
if [ -f "/opt/docker/bin/entrypoint.d/default.sh" ]; then
|
||
|
. /opt/docker/bin/entrypoint.d/default.sh
|
||
|
fi
|
||
|
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
# Run "entrypoint" provisioning
|
||
|
##
|
||
|
function runProvisionEntrypoint() {
|
||
|
includeScriptDir "/opt/docker/provision/entrypoint.d"
|
||
|
includeScriptDir "/entrypoint.d"
|
||
|
}
|
||
|
|
||
|
###
|
||
|
# List environment variables (based on prefix)
|
||
|
##
|
||
|
function envListVars() {
|
||
|
if [[ $# -eq 1 ]]; then
|
||
|
env | grep "^${1}" | cut -d= -f1
|
||
|
else
|
||
|
env | cut -d= -f1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
###
|
||
|
# Get environment variable (even with dots in name)
|
||
|
#
|
||
|
##
|
||
|
function envGetValue() {
|
||
|
awk "BEGIN {print ENVIRON[\"$1\"]}"
|
||
|
}
|