#!/bin/bash ProjectL=wfc ProjectU=WFC RelVersion=1.0.3 RelDate=`date +%Y%m%d` GitRootDir=${HOME}/wfc.git BERootDir=${GitRootDir}/be.wfc FERootDir=${GitRootDir}/fe.wfc FEUserRootDir=${GitRootDir}/fe.wfc.user BuildRootDir=${GitRootDir}/build.wfc WFCWorkDir=/opt/wfc BuildDockerDir=${BuildRootDir}/build/docker ReleseDir=${BuildRootDir}/release TarFileName=${ProjectL}-${RelVersion}-${RelDate}.tar.gz TmpDir=${BuildRootDir}/tmp TmpEnvFile=${TmpDir}/.env.tmp usage() { echo "Usage: sh build.sh [extras|jar|dist|copy|tar|deb|all]" exit 1 } pre_build_tar(){ if [ ! -d ${ReleseDir}/tars ]; then mkdir -p ${ReleseDir}/tars fi if [ -f ${BuildDockerDir}/.env ]; then mv -f ${BuildDockerDir}/.env ${TmpEnvFile} fi } pre_build_deb(){ if [ ! -d ${ReleseDir}/debs ]; then mkdir -p ${ReleseDir}/debs fi if [ -f ${BuildDockerDir}/.env ]; then mv -f ${BuildDockerDir}/.env ${TmpEnvFile} fi } build-extras(){ cd ${BuildRootDir} git pull echo -n "Begin build extras file ... " cd ${BuildRootDir}/bin javac -source 8 -target 8 -bootclasspath /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar -extdirs "" -Xlint:-options printJarVer.java echo "done" } build-jar(){ cd ${BERootDir} git pull mvn clean package -Dmaven.test.skip=true -P prod } build-dist(){ cd ${FERootDir} git checkout src/typings/ git pull pnpm i pnpm build cd ${FEUserRootDir} git checkout src/typings/ git pull if ! pnpm list terser --depth 0 &> /dev/null; then pnpm add terser --save-dev fi pnpm i pnpm build } copy-file(){ ${BuildRootDir}/bin/copy.sh cp -f ${BuildRootDir}/bin/printJarVer.class ${BuildRootDir}/build/bin/ } # create tar package create-tar(){ echo -n "Begin build tar package ... " cd ${BuildRootDir}/build tar cvfz ${ReleseDir}/tars/${TarFileName} \ --exclude='./docker/mysql/logs' \ --exclude='./docker/mysql/data' \ --exclude='./docker/mysql/tmp' \ --exclude='./docker/nacos/logs' \ --exclude='./docker/nginx/logs' \ --exclude='./docker/.env' \ . 1>/dev/null echo "done" } # create deb package create-deb(){ echo -n "Begin build deb package ... " echo "done" } post_build(){ if [ -f ${TmpEnvFile} ] && [ ! -f ${BuildDockerDir}/.env ]; then mv -f ${TmpEnvFile} ${BuildDockerDir}/.env fi } case "$1" in "extras") build-extras ;; "jar") build-jar ;; "dist") build-dist ;; "copy") copy-file ;; "tar") # pre_build_tar build-extras build-jar build-dist copy-file create-tar # post_build ;; "deb") # pre_build_deb build-extras build-jar build-dist copy-file create-deb # post_build ;; "all") $0 tar $0 deb ;; *) usage ;; esac