106 lines
2.3 KiB
Bash
106 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# Ver: 1.0 by Endial Fang (endial@126.com)
|
|
|
|
[[ ${ENV_DEBUG:-false} = true ]] && set -x
|
|
|
|
MODULE="$(basename "$0")"
|
|
|
|
RESET='\033[0m'
|
|
BOLD='\033[1m'
|
|
|
|
# 前景色
|
|
BLACK='\033[38;5;0m'
|
|
RED='\033[38;5;1m'
|
|
GREEN='\033[38;5;2m'
|
|
YELLOW='\033[38;5;3m'
|
|
BLUE='\033[38;5;4m'
|
|
MAGENTA='\033[38;5;5m'
|
|
CYAN='\033[38;5;6m'
|
|
WHITE='\033[38;5;7m'
|
|
|
|
# 背景色
|
|
ON_BLACK='\033[48;5;0m'
|
|
ON_RED='\033[48;5;1m'
|
|
ON_GREEN='\033[48;5;2m'
|
|
ON_YELLOW='\033[48;5;3m'
|
|
ON_BLUE='\033[48;5;4m'
|
|
ON_MAGENTA='\033[48;5;5m'
|
|
ON_CYAN='\033[48;5;6m'
|
|
ON_WHITE='\033[48;5;7m'
|
|
|
|
# 函数列表
|
|
|
|
# 打印输出到 STDERR 设备
|
|
stderr_print() {
|
|
printf "%b\\n" "${*}" >&2
|
|
}
|
|
|
|
# 输出实际日志信息
|
|
# 参数:
|
|
# $1 - 日志类型
|
|
# $2 - 日志信息
|
|
LOG() {
|
|
stderr_print "${ENV_DEBUG:+${CYAN}${MODULE:-} ${MAGENTA}$(date "+%T.%2N ")}${RESET}${*}"
|
|
}
|
|
|
|
# 输出调试类日志信息,尽量少使用
|
|
# 参数:
|
|
# $1 - 日志类型
|
|
# $2 - 日志信息
|
|
LOG_D() {
|
|
local -r bool="${ENV_DEBUG:-false}"
|
|
shopt -s nocasematch
|
|
if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then
|
|
LOG "${BLUE}DEBUG${RESET} ==> ${*}"
|
|
fi
|
|
}
|
|
|
|
# 输出提示信息类日志信息
|
|
# 参数:
|
|
# $1 - 日志类型
|
|
# $2 - 日志信息
|
|
LOG_I() {
|
|
LOG "${GREEN}INFO ${RESET} ==> ${*}"
|
|
}
|
|
|
|
# 输出警告类日志信息至sterr
|
|
# 参数:
|
|
# $1 - 日志类型
|
|
# $2 - 日志信息
|
|
LOG_W() {
|
|
LOG "${YELLOW}WARN ${RESET} ==> ${*}"
|
|
}
|
|
|
|
# 输出错误类日志信息至sterr,并退出脚本
|
|
# 参数:
|
|
# $1 - 日志类型
|
|
# $2 - 日志信息
|
|
LOG_E() {
|
|
LOG "${RED}ERROR${RESET} ==> ${*}"
|
|
}
|
|
|
|
# 打印包含包含Logo的欢迎信息
|
|
# 全局变量:
|
|
# APP_NAME
|
|
print_image_welcome_page() {
|
|
[[ -n "${APP_NAME}" ]] && github_url="/docker-${APP_NAME}"
|
|
|
|
LOG_I ' ____ _ '
|
|
LOG_I ' / ___|___ | | _____ ___ _ '
|
|
LOG_I '| | / _ \| |/ _ \ \ / / | | | '"Docker : ${BOLD}${APP_NAME:-undefined}${RESET}"
|
|
LOG_I '| |__| (_) | | (_) \ V /| |_| | '"Version: ${BOLD}${APP_VERSION:-0.0}${RESET}"
|
|
LOG_I ' \____\___/|_|\___/ \_/ \__,_| '"PowerBy: ${BOLD}Endial@126.com${RESET}"
|
|
LOG_D " Project Repo: https://github.com/colovu/${github_url}"
|
|
LOG_I ""
|
|
|
|
}
|
|
|
|
# 根据需要打印欢迎信息
|
|
# 全局变量:
|
|
# ENV_DISABLE_WELCOME_MESSAGE
|
|
# APP_NAME
|
|
docker_print_welcome() {
|
|
if [[ "$(id -u)" = "0" ]]; then
|
|
print_image_welcome_page
|
|
fi
|
|
} |