#!/bin/bash # front-end Catalog WebDir=/root/omc.git/fe.ems.vue3 WebBranch=lichang BuildWeb="" # back-end catalog ApiDir=/root/omc.git/be.ems ApiBranch=lichang BuildApi="" # Package Catalog BuildDir=/root/omc.git/build.ems BuildBranch=lichang # Default Version Value VERSION="2.2505.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 " --api Build Api ($ApiDir)" 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 ;; --api) BuildApi="build"; shift ;; *) 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 # RemoveChinese rm -rf ./public/alarmHelp/zh rm -rf ./public/nbStateImput/zh.xlsx find ./public -type f \( -name "*.js" -o -name "*.json" \) -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./src -type f \( -name "*.ts" -o -name "*.vue" -o -name "*.js" -o -name "*.json" \) -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + 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 # RemoveChinese find ./build/database -type f -name '*.sql' -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./features -type f -name '*.go' -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./lib -type f -name '*.go' -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./src -type f -name '*.go' -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./sshsvc -type f -name '*.go' -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./build/vendor -type f -name '*.sql' -exec sed -i 's/[一-龥、,。?!“”()【】·]//g' {} + find ./build/vendor -type f -name '*.sql' -exec sed -i "s/'true' WHERE \`config_id\`/'false' WHERE \`config_id\`/g" {} + find ./build/vendor -type f -name '*.sql' -exec sed -i "s/'1' WHERE \`menu_id\`/'0' WHERE \`menu_id\`/g" {} + find ./build/vendor -type f -name 'zh_*' -exec rm -f {} \; 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-remove-chinese.sh --web --api -v 2.2503.2 # Packaged version of just the last compiled file/build directory # bash pkg-remove-chinese.sh -v 2.2503.2