#!/bin/bash

OMCRootDir=/usr/local/omc
SystemdRootDir=/lib/systemd/system
OMCEtcDir=${OMCRootDir}/etc
FERootDir=${OMCRootDir}/htdocs/front
OMCBinDir=${OMCRootDir}/bin
OMCStaticDir=${OMCRootDir}/static
UsrLocalBinDir=/usr/local/bin
OMCDaemon=omcd
NginxEtcDir=/etc/nginx
NginxConfDir=${NginxEtcDir}/conf.d
CFileList="restconf.yaml sshsvc.yaml omc.conf"
LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png"

echo ""
echo "* To start/stop/restart/status omc service, please run:"
echo "    sudo systemctl start/stop/restart/status restagent.service"
echo "    sudo systemctl start/stop/restart/status sshsvc.service"
echo "    or run: "
echo "    sudo /usr/local/omc/bin/omcsvc.sh start/stop/restart/status"
echo ""

cd ${UsrLocalBinDir}
if [ ! -e ${OMCDaemon} ]; then  ln -s ${OMCBinDir}/omcsvc.sh ${OMCDaemon}; fi

chmod +rx ${OMCRootDir}/bin/*
chmod +rx ${OMCRootDir}/*
chmod +rx ${UsrLocalBinDir}/*
chmod -R 755 ${OMCRootDir}/htdocs/front

for CFile in ${CFileList}; do
    if [ ! -e "${OMCEtcDir}/${CFile}" ]; then
        cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
    else 
        # mv -f ${OMCEtcDir}/${CFile} ${OMCEtcDir}/${CFile}.bak
        # cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
        if [ -e "${OMCBinDir}/upgconf.sh" ] && [ "${CFile}" = "restconf.yaml" ]; then
            ${OMCBinDir}/upgconf.sh
        fi
    fi                  
done

# # Install redis db if not exist /usr/local/db
# if [ ! -e "${RedisRootDir}/bin/kvdb-server" ]; then
# #    if [ ! -e "${RedisRootDir}" ]; then
# #        mkdir -p ${RedisRootDir}
# #    fi
#     # stop old adb service
#     if [ -e "${RedisOldRootDir}/bin/redis-server" ] && [ -e "${SystemdRootDir}/adb.service" ]; then
#         systemctl stop adb.service
#         systemctl disable adb.service
#     fi
#     # stop adb service
#     if [ -e "${UsrLocalBinDir}/adb-server" ] && [ -e "${SystemdRootDir}/adb.service" ]; then
#         systemctl stop adb.service
#         systemctl disable adb.service
#     fi   
#     cp -rf ${DependsRootDir}/kvdb/* /
#     chmod +rx ${RedisRootDir}/bin/kvdb*
#     if [ ! -e "${RedisConfDir}/kvdb.conf" ]; then    
#         cp ${RedisConfDir}/default/kvdb.conf ${RedisConfDir}
#     fi
#     sed -i 's/replica-read-only yes/replica-read-only no/g' ${RedisConfDir}/kvdb.conf 

#     LINE="masterauth helloearth"
#     FILE="${RedisConfDir}/kvdb.conf"
#     # 检查文件中是否存在该行
#     if ! grep -qxF "$LINE" "$FILE"; then
#         # 如果不存在，将其添加到文件末尾
#         echo "$LINE" >> "$FILE"
#     fi

#     # copy the old adb dump.rdb
#     if [ -e "${RedisOldRootDir}/bin/conf/dump.rdb" ] && [ ! -e "${RedisRootDir}/etc/kvdb/dump.rdb" ]; then
#         cp -f ${RedisOldRootDir}/bin/conf/dump.rdb ${RedisRootDir}/etc/kvdb/;
#         mv -f ${RedisRootDir}/db ${RedisRootDir}/adb.old
#     fi
#     # copy the adb dump.rdb
#     if [ -e "${RedisRootDir}/etc/adb/dump.rdb" ] && [ ! -e "${RedisRootDir}/etc/kvdb/dump.rdb" ]; then
#         cp -f ${RedisRootDir}/etc/adb/dump.rdb ${RedisRootDir}/etc/kvdb/;
#         mv -f ${RedisRootDir}/etc/adb ${RedisRootDir}/etc/adb.old
#     fi     
# #    cp -f ${DependsRootDir}/systemd/kvdb.service ${SystemdRootDir}
# else
#     if [ ! -e "${RedisConfDir}/kvdb.conf" ]; then    
#         cp ${RedisConfDir}/default/kvdb.conf ${RedisConfDir}
#     fi
#     sed -i 's/replica-read-only yes/replica-read-only no/g' ${RedisConfDir}/kvdb.conf

#     LINE="masterauth helloearth"
#     FILE="${RedisConfDir}/kvdb.conf"
#     # 检查文件中是否存在该行
#     if ! grep -qxF "$LINE" "$FILE"; then
#         # 如果不存在，将其添加到文件末尾
#         echo "$LINE" >> "$FILE"
#     fi         
# fi

if [ ! -e "${FERootDir}/config.js" ]; then    
    cp ${FERootDir}/default/config.js ${FERootDir}; 
fi

# for LogoFile in ${LogoFileList}; do
#     if [ ! -e "${OMCStaticDir}/logo/${LogoFile}" ]; then
#         cp ${OMCStaticDir}/omc.d/logo/${LogoFile} ${OMCStaticDir}/logo;
#     fi                 
# done

# if ! id -u omc >/dev/null 2>&1 ; then     
#     useradd -d /opt/omc -m -s /bin/bash -pomc123 omc; 
#     mkdir -p /opt/omc/ftp
# else 
#     echo "user omc exist"; 
# fi

if [ ! -e "${NginxConfDir}/omc.conf" ]; then
    mkdir -p ${NginxConfDir}    
    cp -f ${OMCEtcDir}/nginx/omc.conf ${NginxConfDir}; 
fi

systemctl daemon-reload

# disable auto upgrade
systemctl disable --now unattended-upgrades

systemctl enable restagent.service
systemctl enable sshsvc.service

systemctl daemon-reload

# read environment parameter and to do 
if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
    echo "M parameter: $M_PARAM"
    if [ -n "$C_PARAM" ]; then
        echo "C parameter: $C_PARAM"
        ${OMCRootDir}/bin/setomc.sh -m $M_PARAM -c $C_PARAM
    else 
        ${OMCRootDir}/bin/setomc.sh -m $M_PARAM    
    fi
    # exit while failed to run setomc.sh
    if [ $? -ne 0 ]; then
        echo "setomc.sh execution failed. Exiting."
        exit 1
    fi
fi

echo -n "Starting OMC service ... "
systemctl start sshsvc.service
systemctl start restagent.service
echo "done"
