129 lines
2.6 KiB
Bash
129 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
OMCBinFile=/usr/local/bin/omc
|
|
OMCEtcDir=/usr/local/etc/omc
|
|
confFile=$OMCEtcDir/omc.yaml
|
|
VariableFile=$OMCEtcDir/omc.conf
|
|
# Read the value of the variable from file
|
|
source $VariableFile
|
|
|
|
# 初始化变量
|
|
T_PARAM=""
|
|
C_PARAM=""
|
|
M_PARAM=""
|
|
|
|
# usage
|
|
usage() {
|
|
echo "Usage: bash $0 [OPTION]"
|
|
echo
|
|
echo "Program Initialization OPTION:"
|
|
echo " -i, --install Specify the install"
|
|
echo " -u, --upgrade Specify the upgrade"
|
|
echo " -m, --mode Available the mode (standard/light)"
|
|
echo " -c, --customize Available the customize (omc/agt/ba)"
|
|
echo " -h Display this help message"
|
|
echo
|
|
exit 1
|
|
}
|
|
|
|
# 检查环境
|
|
checkEnv() {
|
|
# 检查 mysql 或 mariadb 是否安装
|
|
if command -v mysql &> /dev/null || command -v mariadb &> /dev/null; then
|
|
echo "MySQL 或 MariaDB 已安装"
|
|
else
|
|
echo "MySQL or MariaDB not installed"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# customize
|
|
customize() {
|
|
echo "customize"
|
|
}
|
|
|
|
# install
|
|
install() {
|
|
# 数据源
|
|
DBSource="default"
|
|
if [ "$MODE" = "lite" ]; then
|
|
DBSource="lite"
|
|
fi
|
|
$OMCBinFile -c $confFile --sqlPath $OMCEtcDir/$DBSource/install --sqlSource $DBSource
|
|
}
|
|
|
|
# upgrade
|
|
upgrade() {
|
|
# 数据源
|
|
DBSource="default"
|
|
if [ "$MODE" = "lite" ]; then
|
|
DBSource="lite"
|
|
fi
|
|
$OMCBinFile -c $confFile --sqlPath $OMCEtcDir/$DBSource/upgrade --sqlSource $DBSource
|
|
}
|
|
|
|
# =========================
|
|
|
|
# 参数解析
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-i|--install)
|
|
T_PARAM="install"
|
|
shift
|
|
;;
|
|
-u|--upgrade)
|
|
T_PARAM="upgrade"
|
|
shift
|
|
;;
|
|
-t|--type)
|
|
T_PARAM="$2"
|
|
shift 2 # 跳过 -t 参数和值
|
|
;;
|
|
-m|--mode)
|
|
M_PARAM="$2"
|
|
shift 2 # 跳过 -m 参数和值
|
|
;;
|
|
-c|--customize)
|
|
C_PARAM="$2"
|
|
shift 2 # 跳过 -c 参数和值
|
|
;;
|
|
-h)
|
|
usage
|
|
;;
|
|
*)
|
|
echo "Error: Unknown option: $1"
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# 确保 -i 或 -u 在前
|
|
if [ -z "$T_PARAM" ]; then
|
|
echo "Error: You must specify -i (install) or -u (upgrade) first."
|
|
usage
|
|
fi
|
|
echo "Type parameter: $T_PARAM"
|
|
|
|
# 判断 -c 是否传入
|
|
if [ -n "$C_PARAM" ]; then
|
|
echo "Customize parameter: $C_PARAM"
|
|
sed -i "s/VENDORS=.*/VENDORS=${C_PARAM}/" $VariableFile
|
|
VENDORS=$C_PARAM
|
|
fi
|
|
echo "Customize parameter: $VENDORS"
|
|
|
|
# 判断 -m 是否传入
|
|
if [ -n "$M_PARAM" ]; then
|
|
echo "Mode parameter: $M_PARAM"
|
|
sed -i "s/MODE=.*/MODE=${M_PARAM}/" $VariableFile
|
|
sed -i "s/mode:.*/mode: ${M_PARAM}/" $confFile
|
|
MODE=$M_PARAM
|
|
fi
|
|
echo "Mode parameter: $MODE"
|
|
|
|
if [ "$T_PARAM" = "install" ]; then
|
|
install
|
|
else
|
|
upgrade
|
|
fi
|
|
|