49 lines
1.6 KiB
Bash
Executable File
49 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Ver: 1.3 by Endial Fang (endial@126.com)
|
|
#
|
|
# 应用环境及依赖文件设置脚本
|
|
|
|
# 设置 shell 执行参数,可使用'-'(打开)'+'(关闭)控制。常用:
|
|
# -e: 命令执行错误则报错(errexit); -u: 变量未定义则报错(nounset); -x: 打印实际待执行的命令行; -o pipefail: 设置管道中命令遇到失败则报错
|
|
set -euo pipefail
|
|
|
|
. /colovu/lib/libcommon.sh # 加载通用函数库
|
|
. /colovu/lib/libfs.sh # 加载文件操作函数库
|
|
. /colovu/lib/libos.sh # 加载系统管理函数库
|
|
|
|
. /usr/local/bin/environment.sh # 设置环境变量
|
|
. /usr/local/bin/common.sh # 应用专用函数库
|
|
|
|
LOG_I "** Processing setup.sh **"
|
|
|
|
trap "app_stop_server" EXIT
|
|
|
|
APP_DIRS="/var/log/${APP_NAME} /var/run/${APP_NAME} /var/cache/${APP_NAME} ${APP_HOME}"
|
|
APP_DIRS+="${APP_HOME}/conf ${APP_HOME}/data ${APP_HOME}/cert"
|
|
|
|
LOG_I "Ensure directory exists: ${APP_DIRS}"
|
|
for dir in ${APP_DIRS}; do
|
|
ensure_dir_exists ${dir}
|
|
done
|
|
|
|
# 检测指定文件是否在配置文件存储目录存在,如果不存在则拷贝(新挂载数据卷、手动删除都会导致不存在)
|
|
LOG_I "Check config files in: ${APP_CONF_DIR}"
|
|
if [[ ! -z "$(ls -A "${APP_DEF_DIR}")" ]]; then
|
|
ensure_config_file_exist "${APP_DEF_DIR}" $(ls -A "${APP_DEF_DIR}")
|
|
fi
|
|
|
|
# 解决使用non-root后,[emerg] open() "/dev/stdout" failed (13: Permission denied)
|
|
LOG_D "Change permissions of stdout/stderr to 0662"
|
|
chmod 0662 /dev/stdout /dev/stderr
|
|
|
|
app_verify_minimum_env
|
|
|
|
# 执行应用预初始化操作
|
|
app_custom_preinit
|
|
|
|
# 执行应用初始化操作
|
|
app_default_init
|
|
|
|
# 执行用户自定义初始化脚本
|
|
app_custom_init
|