1
0
Files
build.ems/pkg.sh
2025-05-15 15:55:57 +08:00

110 lines
2.6 KiB
Bash

#!/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
# =================== 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
cd $BuildDir
git checkout .
git pull
git checkout $BuildBranch
git pull
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