#!/usr/bin/env bash # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. set -eo pipefail ROOT=`dirname "$0"` ROOT=`cd "$ROOT"; pwd` export DORIS_HOME=${ROOT} . ${DORIS_HOME}/env.sh # Check args usage() { echo " Usage: $0 Optional options: --plugin build special plugin Eg. $0 --plugin xxx build xxx plugin $0 build all plugins " exit 1 } OPTS=$(getopt \ -n $0 \ -o '' \ -o 'h' \ -l 'plugin' \ -l 'clean' \ -l 'help' \ -- "$@") if [ $? != 0 ] ; then usage fi eval set -- "$OPTS" ALL_PLUGIN=1 CLEAN=0 if [ $# == 1 ] ; then # defuat ALL_PLUGIN=1 CLEAN=0 else while true; do case "$1" in --plugin) ALL_PLUGIN=0 ; shift ;; --clean) CLEAN=1 ; shift ;; -h) HELP=1; shift ;; --help) HELP=1; shift ;; --) shift ; break ;; *) ehco "Internal error" ; exit 1 ;; esac done fi if [[ ${HELP} -eq 1 ]]; then usage exit fi echo "Get params: BUILD_ALL_PLUGIN -- $ALL_PLUGIN CLEAN -- $CLEAN " # check if palo-fe.jar exist if [ ! -f "$DORIS_HOME/fe/target/palo-fe.jar" ]; then echo "ERROR: palo-fe.jar does not exist. Please build FE first" exit -1 fi cd ${DORIS_HOME} PLUGIN_MODULE= if [ ${ALL_PLUGIN} -eq 1 ] ; then cd ${DORIS_HOME}/fe_plugins if [ ${CLEAN} -eq 1 ]; then ${MVN_CMD} clean fi echo "build all plugins" ${MVN_CMD} package -DskipTests else PLUGIN_MODULE=$1 cd ${DORIS_HOME}/fe_plugins/$PLUGIN_MODULE if [ ${CLEAN} -eq 1 ]; then ${MVN_CMD} clean fi echo "build plugin $PLUGIN_MODULE" ${MVN_CMD} package -DskipTests fi cd ${DORIS_HOME} # Clean and prepare output dir DORIS_OUTPUT=${DORIS_HOME}/fe_plugins/output/ mkdir -p ${DORIS_OUTPUT} if [ ${ALL_PLUGIN} -eq 1 ] ; then cp -p ${DORIS_HOME}/fe_plugins/*/target/*.zip ${DORIS_OUTPUT}/ else cp -p ${DORIS_HOME}/fe_plugins/$PLUGIN_MODULE/target/*.zip ${DORIS_OUTPUT}/ fi echo "***************************************" echo "Successfully build Doris FE Plugin" echo "***************************************" exit 0