#!/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[@]}" VERSION=2.2411.3 RelDate=`date +%Y%m%d` RelVer=${VERSION}-${RelDate} EmsBEDir=/home/omcuser/probject/nms_cxy EmsFEDir=/home/omcuser/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 . git pull 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} mkdir -p ${RpmBuildDirOMCFront} cp -rf ${EmsFEDir}/* ${RpmBuildDirOMCFront} echo '/*use nginx*/' | tee ${RpmBuildDirOMCFront}/config.js # 打包可执行文件 cd $EmsBEDir/restagent echo "Make omc ..." make cp -rf ${EmsBEDir}/restagent/omc ${RpmBuildDirOMCBin}/omc chmod +x ${RpmBuildDirOMCBin}/* # 打包rpm cd ${EmsBEDir} chmod 755 ${RpmBuildDir} chmod 755 ${RpmBuildDirOMC} rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec RpmPkgFile=${RpmReleaseDebsDir}/omc-r${RelVer}-ky10-nms_cxy.rpm mv ${RpmBuildDir}/RPMS/aarch64/omc-${RelVer}.ky10.aarch64.rpm ${RpmPkgFile} # 生成MD5文件 rm -f omc-md5sum.txt md5sum ${RpmPkgFile} >${RpmReleaseDebsDir}/omc-md5sum.txt echo ${RpmPkgFile} ;; 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} mkdir -p ${DebBuildDirOMCFront} cp -rf ${EmsFEDir}/* ${DebBuildDirOMCFront} echo '/*use nginx*/' | tee ${DebBuildDirOMCFront}/config.js # 打包可执行文件 cd $EmsBEDir/restagent echo "Make omc ..." make cp -rf ${EmsBEDir}/restagent/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=${DebReleaseDebsDir}/omc-r${RelVer}-ub22-nms_cxy.deb dpkg -b ${DebBuildDir} ${DebPkgFile} # 生成MD5文件 rm -f omc-md5sum.txt md5sum ${DebPkgFile} >${DebReleaseDebsDir}/omc-md5sum.txt echo ${DebPkgFile} ;; *) usage exit 4 ;; esac