#!/bin/bash usage() { echo "Usage: $0 deb|rpm [option]..." echo echo "Make omc package, option as follow:" echo " deb|rpm, deb: ubuntu|debian package build by dpkg" echo " rpm: centos/redhat package, build by rpmbuild" echo " -r, =build root directory build root directory, default directory is $HOME/omc.git" echo " -d dump SQL from database" echo " -m, =be|fe|all be: only process back-end code, default if non input" echo " fe: only process front-end code" echo " all: process all include be and fe" } pkgtype="" new_args=() be_args=() # Traverse all parameters for arg in "$@"; do if [[ "$arg" == "deb" || "$arg" == "rpm" ]]; then pkgtype=$arg be_args+=("$arg") else new_args+=("$arg") # Add non pkgtype parameters to a new parameter list fi done if [ -z "$pkgtype" ]; then usage exit 1 fi # Use a new parameter list set -- "${new_args[@]}" rootdir=${HOME}/omc.git m_arg="*" while getopts "m:r:d" option; do case $option in m) m_arg=$(echo $OPTARG | tr '[:upper:]' '[:lower:]') ;; r) rootdir=$OPTARG be_args+=("-r ${rootdir}") ;; d) be_args+=("-d") ;; \?) echo "Invalid option: -$OPTARG" >&2 usage exit 2 ;; esac done if [ ! -d ${rootdir} ]; then echo "Not exist directory: ${rootdir}" exit 3 fi bedir=${rootdir}/be.ems fedir=${rootdir}/fe.ems.vue3 builddir=${rootdir}/build.ems makefe() { cd ${fedir} git pull npm install --registry https://registry.npmmirror.com echo -n "Building front-end vue ... " npm run build 1>/dev/null if [ $? = 0 ]; then echo "done" fi } makebe() { cd ${builddir} #chmod +x mkpkg.sh chmod +x build.sh ./build.sh ${be_args[@]} } case "${m_arg}" in fe) makefe ;; all) makefe makebe ;; be | *) makebe ;; esac