#!/bin/bash # front-end Catalog WebDir=/root/omc.git/fe.ems.vue3 WebBranch=main BuildWeb="" # back-end catalog ApiDir=/root/omc.git/be.ems ApiBranch=main BuildApi="" # Package Catalog BuildDir=/root/omc.git/build.ems BuildBranch=main # Default Version Value VERSION="2.2503.2" # usage usage() { echo "Usage: bash $0 [OPTION]" echo echo "Build Software Package OPTION:" echo " -v Specify the version" echo " --web Build Web ($WebDir)" echo " -webBranch Web Branch ($WebBranch)" echo " --api Build Api ($ApiDir)" echo " -apiBranch Api Branch ($ApiBranch)" echo " -h Display this help message" echo exit 1 } # Read command line arguments while [[ $# -gt 0 ]]; do case "$1" in -v) VERSION="$2"; shift 2 ;; --web) BuildWeb="build"; shift ;; -webBranch) WebBranch="$2"; shift 2 ;; --api) BuildApi="build"; shift ;; -apiBranch) ApiBranch="$2"; shift 2 ;; *) usage ;; esac done # =================== build branch echo cd $BuildDir git checkout . git pull git checkout $BuildBranch git pull # =================== Web echo # Determine if --web is passed in if [ -n "$BuildWeb" ]; then cd $WebDir git checkout . git pull git checkout $WebBranch git pull npm install --registry https://registry.npmmirror.com npm run build output=$BuildDir/linux/usr/local/etc/omc/web rm -rf $output && cp -rf dist $output echo "===> web build dist copy to $output" fi # =================== Api echo # Determine if --api is passed in if [ -n "$BuildApi" ]; then cd $ApiDir git checkout . git pull git checkout $ApiBranch git pull MOD_CONFIG="be.ems/src/framework/config" go build -o omc -v -ldflags "-s -w -X '$MOD_CONFIG.Version=$VERSION' -X '$MOD_CONFIG.BuildTime=$(date)' -X '$MOD_CONFIG.GoVer=$(go version)'" output=$BuildDir/linux/usr/local/bin cp -rf omc $output/omc echo "===> go build omc copy to $output" # sshsvc cd $ApiDir/sshsvc make cp -rf sshsvc $output/sshsvc echo "===> go build sshsvc copy to $output" # Vendor Database output=$BuildDir/linux/usr/local/etc/omc dirs="database default vendor" for v in ${dirs}; do rm -rf ${output}/${v} cp -rf ${ApiDir}/build/${v} ${output}/${v} done echo echo "===> vendor data copy to $output" fi # =================== deb/rpm echo bash $BuildDir/build.sh -v $VERSION # Compile the front-end and back-end and then package the version # bash pkg.sh --web -webBranch main --api -apiBranch main -v 2.2503.2 # bash pkg.sh --web --api -v 2.2503.2 # bash pkg.sh --api -apiBranch main -v 2.2503.2 # Packaged version of just the last compiled file/build directory # bash pkg.sh -v 2.2503.2