#!/bin/bash usage() { echo "Usage: $0 [OPTION] deb|rpm" echo echo "Build omc package, option as follow:" echo " deb|rpm, deb: ubuntu|debian package build by dpkg" echo " rpm: centos/redhat package, build by rpm" echo } pkgtype="" new_args=() # Traverse all parameters for arg in "$@"; do if [[ "$arg" == "deb" || "$arg" == "rpm" ]]; then pkgtype=$arg else new_args+=("$arg") # Add non pkgtype parameters to a new parameter list fi done if [ -z "$pkgtype" ]; then usage exit 1 fi # Use a new parameter list set -- "${new_args[@]}" ProjectL=omc ProjectU=OMC VERSION=2.2407.1 RelDate=`date +%Y%m%d` RelVer=${VERSION}-${RelDate} EmsBEDir=/home/agtuser/probject/nms_cxy EmsFEDir=/home/agtuser/probject/ems_frontend_vue3/dist SystemDir=${EmsBEDir}/build/system # rpm RpmBuildDir=${EmsBEDir}/build/rpmbuild RpmBuildDirOMC=${RpmBuildDir}/BUILD/usr/local/omc RpmBuildDirOMCBin=${RpmBuildDirOMC}/bin RpmBuildDirOMCFront=${RpmBuildDirOMC}/htdocs/front RpmReleaseDebsDir=${EmsBEDir}/build/release/rpms/arm64 # deb DebBuildDir=${EmsBEDir}/build/debbuild DebBuildDirOMC=${DebBuildDir}/usr/local/omc DebBuildDirOMCBin=${DebBuildDirOMC}/bin DebBuildDirOMCFront=${DebBuildDirOMC}/htdocs/front DebReleaseDebsDir=${EmsBEDir}/build/release/debs/amd64 case "${pkgtype}" in rpm) # 还原打包目录 rm -rf ${RpmBuildDir} git checkout . cp -rf ${SystemDir}/* ${RpmBuildDir}/BUILD cp -rf ${RpmBuildDirOMC}/etc/db/common/* ${RpmBuildDirOMC}/etc/db/install cp -rf ${RpmBuildDirOMC}/etc/db/common/* ${RpmBuildDirOMC}/etc/db/upgrade rm -rf ${RpmBuildDirOMC}/etc/db/common # 前端dist文件 rm -rf ${RpmBuildDirOMCFront} cp -rf ${EmsFEDir}/* ${RpmBuildDirOMCFront} echo '/*use nginx*/' | tee ${RpmBuildDirOMCFront}/config.js # 打包可执行文件 cd $EmsBEDir/omc echo "Make omc ..." make cp -rf ${EmsBEDir}/omc/omc ${RpmBuildDirOMCBin}/omc chmod +x ${RpmBuildDirOMCBin}/* # 打包rpm cd ${EmsBEDir} chmod 755 ${RpmBuildDir} chmod 755 ${RpmBuildDirOMC} DebPkgFile=omc-r${RelVer}-ky10-nms_cxy.rpm rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec # 生成MD5文件 cd $RpmReleaseDebsDir rm -f omc-md5sum.txt md5sum ${RpmReleaseDebsDir}/${DebPkgFile} >omc-md5sum.txt ;; deb) # 还原打包目录 rm -rf ${DebBuildDir} git checkout . cp -rf ${SystemDir}/* ${DebBuildDir}/ cp -rf ${DebBuildDirOMC}/etc/db/common/* ${DebBuildDirOMC}/etc/db/install cp -rf ${DebBuildDirOMC}/etc/db/common/* ${DebBuildDirOMC}/etc/db/upgrade rm -rf ${DebBuildDirOMC}/etc/db/common # 前端dist文件 rm -rf ${DebBuildDirOMCFront} cp -rf ${EmsFEDir}/* ${DebBuildDirOMCFront} echo '/*use nginx*/' | tee ${DebBuildDirOMCFront}/config.js # 打包可执行文件 cd $EmsBEDir/omc echo "Make omc ..." make cp -rf ${EmsBEDir}/omc/omc ${DebBuildDirOMCBin}/omc chmod +x ${DebBuildDirOMCBin}/* # 打包deb cd ${EmsBEDir} chmod 755 ${DebBuildDir} chmod 755 ${DebBuildDir}/DEBIAN/preinst chmod 755 ${DebBuildDir}/DEBIAN/postinst chmod 755 ${DebBuildDir}/DEBIAN/postrm sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control DebPkgFile=omc-r${RelVer}-ub22-nms_cxy.deb dpkg -b ${DebBuildDir} ${DebReleaseDebsDir}/${DebPkgFile} # 生成MD5文件 cd $DebReleaseDebsDir rm -f omc-md5sum.txt md5sum ${DebReleaseDebsDir}/${DebPkgFile} >omc-md5sum.txt ;; *) usage exit 4 ;; esac