mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-14 13:01:15 +00:00
104 lines
2.1 KiB
Bash
Executable File
104 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -u
|
|
set -o pipefail
|
|
|
|
|
|
############################################################
|
|
# Functions
|
|
############################################################
|
|
|
|
###
|
|
### Log to stdout/stderr
|
|
###
|
|
log() {
|
|
local type="${1}" # ok, warn or err
|
|
local message="${2}" # msg to print
|
|
local debug="${3}" # 0: only warn and error, >0: ok and info
|
|
|
|
local clr_ok="\033[0;32m"
|
|
local clr_info="\033[0;34m"
|
|
local clr_warn="\033[0;33m"
|
|
local clr_err="\033[0;31m"
|
|
local clr_rst="\033[0m"
|
|
|
|
if [ "${type}" = "ok" ]; then
|
|
if [ "${debug}" -gt "0" ]; then
|
|
printf "${clr_ok}[OK] %s${clr_rst}\n" "${message}"
|
|
fi
|
|
elif [ "${type}" = "info" ]; then
|
|
if [ "${debug}" -gt "0" ]; then
|
|
printf "${clr_info}[INFO] %s${clr_rst}\n" "${message}"
|
|
fi
|
|
elif [ "${type}" = "warn" ]; then
|
|
printf "${clr_warn}[WARN] %s${clr_rst}\n" "${message}" 1>&2 # stdout -> stderr
|
|
elif [ "${type}" = "err" ]; then
|
|
printf "${clr_err}[ERR] %s${clr_rst}\n" "${message}" 1>&2 # stdout -> stderr
|
|
else
|
|
printf "${clr_err}[???] %s${clr_rst}\n" "${message}" 1>&2 # stdout -> stderr
|
|
fi
|
|
}
|
|
|
|
|
|
###
|
|
### Wrapper for run_run command
|
|
###
|
|
run() {
|
|
local cmd="${1}" # command to execute
|
|
local debug="${2}" # show commands if debug level > 1
|
|
|
|
local clr_red="\033[0;31m"
|
|
local clr_green="\033[0;32m"
|
|
local clr_reset="\033[0m"
|
|
|
|
if [ "${debug}" -gt "1" ]; then
|
|
printf "${clr_red}%s \$ ${clr_green}${cmd}${clr_reset}\n" "$( whoami )"
|
|
fi
|
|
/bin/sh -c "LANG=C LC_ALL=C ${cmd}"
|
|
}
|
|
|
|
|
|
###
|
|
### Is argument a positive integer?
|
|
###
|
|
isint() {
|
|
test -n "${1##*[!0-9]*}"
|
|
}
|
|
|
|
|
|
###
|
|
### Is env variable set?
|
|
###
|
|
env_set() {
|
|
printenv "${1}" >/dev/null 2>&1
|
|
}
|
|
|
|
|
|
###
|
|
### Get env variable by name
|
|
###
|
|
env_get() {
|
|
local env_name="${1}"
|
|
|
|
# Did we have a default value specified?
|
|
if [ "${#}" -gt "1" ]; then
|
|
if ! env_set "${env_name}"; then
|
|
echo "${2}"
|
|
return 0
|
|
fi
|
|
fi
|
|
# Just output the env value
|
|
printenv "${1}"
|
|
}
|
|
|
|
|
|
############################################################
|
|
# Sanity Checks
|
|
############################################################
|
|
|
|
if ! command -v printenv >/dev/null 2>&1; then
|
|
log "err" "printenv not found, but required." "1"
|
|
exit 1
|
|
fi
|