diff --git a/.gitignore b/.gitignore index 23fde2d..4ebaace 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ etc opt/lic/docker/jar/*.jar +release \ No newline at end of file diff --git a/bin/build.sh b/bin/build.sh new file mode 100755 index 0000000..66e9077 --- /dev/null +++ b/bin/build.sh @@ -0,0 +1,154 @@ +#!/bin/bash +ProjectL=wfc-lic +ProjectU=WFC-LIC +RelDate=`date +%Y%m%d` +#GitRootDir=${HOME}/wfc.git +GitRootDir=$(dirname $(dirname $(dirname $(realpath $0)))) +SrcRootDir=${GitRootDir}/license.wfc +BuildRootDir=${GitRootDir}/license.build.wfc + +LicenseWorkDir=/opt/lic +BuildDockerDir=${BuildRootDir}/debbuild/opt/docker +ReleseDir=${BuildRootDir}/release + +DebBuildDir=${BuildRootDir}/debbuild +DebReleseDir=${ReleseDir}/debs + +usage() { + echo "Usage: sh build.sh [jar|srctar|deb] [-g]" + exit 1 +} + +SKIP_PRE_GIT_PULL=false + +# Reorder arguments so that options come first +ARGS=() +for arg in "$@"; do + case $arg in + -g) + SKIP_PRE_GIT_PULL=true + ;; + *) + ARGS+=("$arg") + ;; + esac +done + +if SKIP_PRE_GIT_PULL=true; then + ARGS+=("-g") +fi + +# Restore positional parameters +set -- "${ARGS[@]}" + +# Process options +while getopts "g" opt; do + case ${opt} in + g ) + SKIP_PRE_GIT_PULL=true + ;; + \? ) + usage + ;; + esac +done +shift $((OPTIND -1)) + +pre-git-pull(){ + cd ${SrcRootDir} + git pull + cd ${BuildRootDir} + git pull +} + +pre-build-deb(){ + if [ ! -d ${ReleseDir}/debs ]; then + mkdir -p ${ReleseDir}/debs + fi + if [ ! -d ${DebBuildDir}/opt/lic ]; then + mkdir -p ${DebBuildDir}/opt/lic + fi + # git update-index --assume-unchanged ${BuildDockerDir}/env/wfc-release +} + +build-jar(){ + cd ${SrcRootDir} + # git pull + mvn clean package -Dmaven.test.skip=true +} + +pre-build-src-tar(){ + if [ ! -d ${ReleseDir}/src-tars ]; then + mkdir -p ${ReleseDir}/src-tars + fi + source ${BuildRootDir}/bin/control.sh +} + +clean-jar(){ + cd ${SrcRootDir} + mvn clean +} + +copy-file-debbuild(){ + DocsRootDir=${BuildRootDir}/docs + rm -rf ${DebBuildDir}/opt/lic/docker/jar/*.jar + cp -rf ${SrcRootDir}/target/wfc-license-server*.jar ${DebBuildDir}/opt/lic/docker/jar/ + cp -rf ${DocsRootDir}/*.pdf ${DebBuildDir}/opt/lic/docs/ +} + +# create source tar package +create-src-tar(){ + SrcTarFileName=${ProjectL}-${RelVersion}-${RelDate}.src.tar.gz + echo -n "Begin build source tar package(${SrcTarFileName}) ... " + WFCRelativeDir=./wfc.git + LicenseSrcDir=${WFCRelativeDir}/license.wfc + LicenseBuildDir=${WFCRelativeDir}/license.build.wfc + cd ${HOME} + tar cvfz ${ReleseDir}/src-tars/${SrcTarFileName} \ + --exclude=${LicenseSrcDir}/.git \ + --exclude=${LicenseSrcDir}/.vscode \ + --exclude=${LicenseSrcDir}/target \ + --exclude=${LicenseBuildDir}/.git \ + --exclude=${LicenseBuildDir}/.vscode \ + --exclude=${LicenseBuildDir}/debbuild/opt/lic/docker/jar/*.jar \ + --exclude=${LicenseBuildDir}/debbuild/opt/lic/docs \ + --exclude=${LicenseBuildDir}/release \ + ${LicenseSrcDir} ${LicenseBuildDir} 1>/dev/null + echo "done" +} + +# create deb package +create-deb(){ + Version=$(grep '^Version:' ${DebBuildDir}/DEBIAN/control | awk '{print $2}') + DebPkgFile=${ProjectL}-${Version}-${RelDate}-ub22.deb + echo -n "Begin build deb package(${DebPkgFile}) ... " + dpkg -b ${DebBuildDir} ${DebReleseDir}/${DebPkgFile} 1>/dev/null + echo "done" +} + +case "$1" in + "jar") + build-jar + ;; + "deb") + if [ "$SKIP_PRE_GIT_PULL" = false ]; then + pre-git-pull + fi + pre-build-deb + build-jar + copy-file-debbuild + create-deb + ;; + "srctar") + if [ "$SKIP_PRE_GIT_PULL" = false ]; then + pre-git-pull + fi + pre-build-src-tar + clean-jar + create-src-tar + # post-build + ;; + *) + usage + ;; +esac diff --git a/bin/control.sh b/bin/control.sh new file mode 100644 index 0000000..e3509ae --- /dev/null +++ b/bin/control.sh @@ -0,0 +1,4 @@ +Package=WFC-LIC +RelVersion=1.0.0 +Architecture=amd64 +Description='MacroHub Control and Billing System' diff --git a/DEBIAN/control b/debbuild/DEBIAN/control similarity index 100% rename from DEBIAN/control rename to debbuild/DEBIAN/control diff --git a/opt/lic/bin/generatelic.sh b/debbuild/opt/lic/bin/generatelic.sh similarity index 100% rename from opt/lic/bin/generatelic.sh rename to debbuild/opt/lic/bin/generatelic.sh diff --git a/opt/lic/bin/licensecontrol.sh b/debbuild/opt/lic/bin/licensecontrol.sh similarity index 100% rename from opt/lic/bin/licensecontrol.sh rename to debbuild/opt/lic/bin/licensecontrol.sh diff --git a/opt/lic/docker/docker-compose.yml b/debbuild/opt/lic/docker/docker-compose.yml similarity index 100% rename from opt/lic/docker/docker-compose.yml rename to debbuild/opt/lic/docker/docker-compose.yml diff --git a/opt/lic/docker/dockerfile b/debbuild/opt/lic/docker/dockerfile similarity index 100% rename from opt/lic/docker/dockerfile rename to debbuild/opt/lic/docker/dockerfile diff --git a/opt/lic/docker/jar/readme.txt b/debbuild/opt/lic/docker/jar/readme.txt similarity index 100% rename from opt/lic/docker/jar/readme.txt rename to debbuild/opt/lic/docker/jar/readme.txt diff --git a/debbuild/opt/lic/docker/jar/wfc-license-server-1.0.0.jar b/debbuild/opt/lic/docker/jar/wfc-license-server-1.0.0.jar new file mode 100644 index 0000000..dab1afb Binary files /dev/null and b/debbuild/opt/lic/docker/jar/wfc-license-server-1.0.0.jar differ diff --git a/opt/lic/docs/License Software Operation Manual.pdf b/debbuild/opt/lic/docs/License Software Operation Manual.pdf similarity index 100% rename from opt/lic/docs/License Software Operation Manual.pdf rename to debbuild/opt/lic/docs/License Software Operation Manual.pdf diff --git a/opt/lic/docs/License软件操作手册.pdf b/debbuild/opt/lic/docs/License软件操作手册.pdf similarity index 100% rename from opt/lic/docs/License软件操作手册.pdf rename to debbuild/opt/lic/docs/License软件操作手册.pdf diff --git a/opt/lic/docs/License Software Operation Manual.md b/docs/License Software Operation Manual.md similarity index 100% rename from opt/lic/docs/License Software Operation Manual.md rename to docs/License Software Operation Manual.md diff --git a/docs/License Software Operation Manual.pdf b/docs/License Software Operation Manual.pdf new file mode 100644 index 0000000..82c5723 Binary files /dev/null and b/docs/License Software Operation Manual.pdf differ diff --git a/opt/lic/docs/License软件操作手册.md b/docs/License软件操作手册.md similarity index 100% rename from opt/lic/docs/License软件操作手册.md rename to docs/License软件操作手册.md diff --git a/docs/License软件操作手册.pdf b/docs/License软件操作手册.pdf new file mode 100644 index 0000000..26ccc65 Binary files /dev/null and b/docs/License软件操作手册.pdf differ