#!/bin/bash ProjectL=omc ProjectU=OMC PROJECT=${ProjectL} VERSION=2.2405.3 RelDate=`date +%Y%m%d` RelVer=${VERSION}-${RelDate} Ky10Arch=ky10.aarch64 RpmPkgName=${ProjectL}-${RelVer}.ky10.aarch64.rpm RpmPkgRename=${ProjectL}-r${RelVer}-ky10.rpm DebPkgName=${ProjectL}-r${RelVer}-ub*.deb GitLocalRoot=${HOME}/local.git EmsBEDir=${GitLocalRoot}/be.ems EmsBuildRoot=${GitLocalRoot}/build.ems RpmArch=`arch` RpmsDir=${EmsBuildRoot}/rpmbuild/RPMS/ ReleaseDir=${EmsBuildRoot}/release DumpToolDir=${EmsBEDir}/tools/misc PLATFORM=amd64 ARMPLATFORM=aarch64 BuildDir=${EmsBuildRoot}/build BuildOMCDir=${BuildDir}/usr/local/omc BuildOMCBinDir=${BuildOMCDir}/bin BuildOMCEtcDir=${BuildOMCDir}/etc BuildLibDir=${BuildDir}/lib BuildLibSystemDir=${BuildLibDir}/systemd/system DebBuildDir=${EmsBuildRoot}/debbuild DebFEBuildDir=${EmsBuildRoot}/debbuild/usr/local/omc/htdocs DebBuild2204Dir=${EmsBuildRoot}/debbuild/22.04 DebFEBuild2204Dir=${EmsBuildRoot}/debbuild/22.04/usr/local/omc/htdocs RpmBuildDir=${EmsBuildRoot}/rpmbuild RpmFEBuildDir=${RpmBuildDir}/BUILD/usr/local/omc/htdocs OmcInstallDir=/usr/local/omc ConfigEtcDir=${EmsBEDir}/config/etc ConfigSystemdDir=${EmsBEDir}/config/systemd EmsFEDir=${GitLocalRoot}/fe.ems EmsFEVue3Dir=${GitLocalRoot}/fe.ems.vue3/dist LibDir=${EmsBEDir}/lib RESTAGENT=restagent CRONTASK=crontask SshSvcBin=sshsvc CapTraceBin=captrace Data2htmlBin=data2html NBI_ALARM=nbi_alarm NBI_AGENT=nbi_agent AAAA_AGENT=4a_agent RestagentDir=${EmsBEDir}/${RESTAGENT} CrontaskDir=${EmsBEDir}/${CRONTASK} SshSvcDir=${EmsBEDir}/${SshSvcBin} CapTraceDir=${EmsBEDir}/${CapTraceBin} Data2htmlDir=${EmsBEDir}/${Data2htmlBin} DBSQLSrcDir=${EmsBEDir}/database MiscDir=${EmsBEDir}/misc FrontBuildDir=${BuildOMCDir}/htdocs FrontSrcDir=${EmsBEDir}/front ReleaseDebs=${ReleaseDir}/debs/${PLATFORM} CrontaskSize=27788951 RestagentSize=29525312 BinWriterDir=${HOME}/bin if [[ ${RpmArch} =~ "x86_64" ]];then RelArch=amd64 elif [[ ${RpmArch} =~ "aarch64" ]];then RelArch=arm64 fi ProcList="restagent crontask sshsvc captrace data2html" cd $EmsBEDir for procName in $ProcList;do cd $EmsBEDir/$procName echo "Make $procName ..." make done #Get SQL from database #if [ "$2"="db" ]; then # cd ${DumpToolDir} # chmod +x ${DumpToolDir}/dumpdb.sh # ${DumpToolDir}/dumpdb.sh #fi case "$1" in rpm) cd $EmsBEDir # make rpm # clear build cache rm -rf ${FrontBuildDir}/front/* rm -rf ${RpmFEBuildDir}/front/* rm -rf ${RpmBuildDir}/BUILD/usr/local/omc/etc/db/* cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir} cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir} cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir} cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir} cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir} # ${BinWriterDir}/binWriter ${BuildOMCBinDir}/${RESTAGENT} ${RestagentSize} # ${BinWriterDir}/binWriter ${BuildOMCBinDir}/${CRONTASK} ${CrontaskSize} # cp -rf ${MiscDir}/ne-hosts ${BuildOMCBinDir} # cp -rf ./nbi/${NBI_ALARM}/bin/${NBI_ALARM} ${BinDir2} # cp -rf ./nbi/${NBI_AGENT}/bin/${NBI_AGENT} ${BinDir2} # cp -rf ./${4A_AGENT}/bin/${4A_AGENT} ${BinDir2} cp -rf ${MiscDir}/* ${BuildOMCBinDir} # rm -rf ${BinDir2}/ne-hosts cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir} rm -rf ${BuildOMCEtcDir}/db/* cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/ cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3 #Get SQL from database, recover from git if [ "$2" = "db" ]; then cd ${DumpToolDir} chmod +x ${DumpToolDir}/dumpsql.sh ${DumpToolDir}/dumpsql.sh fi cp -rf ${ConfigSystemdDir}/* ${BuildLibSystemDir} #unzip ${FrontSrcDir}/front.zip -d ${FrontBuildDir} >/dev/null mkdir -p ${FrontBuildDir}/front cp -rf ${EmsFEVue3Dir}/* ${FrontBuildDir}/front >/dev/null chmod 755 ${BuildOMCBinDir}/* # chmod 755 ${BinDir2}/* cp -rf ${BuildDir}/* ${RpmBuildDir}/BUILD/ #cp -rf ${BuildDir}/nginx ${RpmBuildDir}/BUILD/etc/ #cp -rf ${BuildDir}/systemd ${RpmBuildDir}/BUILD/lib/ cd ${RpmBuildDir} rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec mv -f $RpmsDir/$RpmArch/$RpmPkgName $ReleaseDir/"$1"s/$RelArch/$RpmPkgRename cd $ReleaseDir/"$1"s/$RelArch rm -f omc-md5sum.txt # rpm --addsign *.rpm md5sum $RpmPkgRename >omc-md5sum.txt ;; deb) VersionID=`grep VERSION_ID /etc/os-release` if [[ ${VersionID} =~ 'VERSION_ID="22.04"' ]]; then DebBuildDir=${DebBuild2204Dir} DebFEBuildDir=${DebFEBuild2204Dir} #DebPkgFile=${PROJECT}-${VERSION}-22.04-${Release).${PLATFORM).deb DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub22.deb elif [[ ${VersionID} =~ 'VERSION_ID="18.04"' ]]; then DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub18.deb else echo "Invalid OS release: ${VersionID}" exit 1 fi cd ${EmsBEDir} #make deb # clear build cache rm -rf ${FrontBuildDir}/front/* rm -rf ${DebFEBuildDir}/front/* rm -rf ${DebBuildDir}/usr/local/omc/etc/db/* cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir} cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir} cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir} cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir} cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir} cp -rf ${MiscDir}/* ${BuildOMCBinDir} cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir} rm -rf ${BuildOMCEtcDir}/db/* cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/ cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3 #Get SQL from database, recover from git if [ "$2" = "db" ]; then cd ${DumpToolDir} chmod +x ${DumpToolDir}/dumpsql.sh ${DumpToolDir}/dumpsql.sh fi cp -rf ${ConfigSystemdDir}/* ${BuildLibSystemDir} cp -rf ${EmsFEVue3Dir}/* ${FrontBuildDir}/front >/dev/null chmod 755 ${BuildOMCBinDir}/* chmod 755 ${DebBuildDir}/DEBIAN/preinst chmod 755 ${DebBuildDir}/DEBIAN/postinst chmod 755 ${DebBuildDir}/DEBIAN/postrm cp -rf ${BuildDir}/* ${DebBuildDir}/ #cp -rf ${BuildDir}/nginx/* ${DebBuildDir}/etc/nginx/conf.d #cp -rf ${BuildDir}/systemd/*.service ${DebBuildDir}/lib/systemd/system/ chmod +x ${DebBuildDir}/usr/local/omc/bin/* sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: agtuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml dpkg -b ${DebBuildDir} ${ReleaseDebs}/${DebPkgFile} cd $ReleaseDir/"$1"s/$RelArch rm -f omc-md5sum.txt # rpm --addsign *.rpm md5sum $DebPkgName >omc-md5sum.txt ;; *) echo "mkpkg" echo "Usage: $0 rpm|deb" ;; esac