blob: 1e0698e10a15751e13e7f402f5671324b415239e [file] [log] [blame]
#!/bin/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.
# Initialize the configuration files of inlong components
script_dir=$(dirname "$0")
script_file_name=$(basename "$0")
# the absolute dir of project
base_dir=$(
cd $script_dir
cd ../..
pwd
)
help_action=(
'help'
'h'
'help: show all actions'
'welcome'
)
manager_action=(
'manager'
'm'
'build manager local debugging environment'
'manager'
)
actions=(
help_action
manager_action
)
function welcome() {
local_date_time=$(date +"%Y-%m-%d %H:%M:%S")
echo '####################################################################################'
echo '# Welcome to use Apache InLong dev toolkit ! #'
echo '# @'$local_date_time' #'
echo '####################################################################################'
echo ''
# shellcheck disable=SC2068
for action in ${actions[@]}; do
# shellcheck disable=SC1087
TMP=$action[@]
TempB=("${!TMP}")
name=${TempB[0]}
simple_name=${TempB[1]}
desc=${TempB[2]}
echo $script_dir'/'$script_file_name' '$name' | '$simple_name
echo ' :'$desc
done
echo ''
}
function manager() {
echo '# start build manager local debugging environment ...'
project_version=$(mvn -q \
-Dexec.executable=echo \
-Dexec.args='${project.version}' \
--non-recursive \
exec:exec)
echo 'current_version: '"$project_version"
#
echo 'associate plugins directory: inlong-manager/manager-plugins/target/plugins'
# plugins -> manager-plugins/target/plugins
cd "$base_dir"
rm -rf plugins
ln -s inlong-manager/manager-plugins/target/plugins plugins
#
echo 'associate sort dist: inlong-sort/sort-dist/target/sort-dist'
cd "$base_dir"/inlong-sort
rm -rf sort-dist.jar
ln -s sort-dist/target/sort-dist-"$project_version".jar sort-dist.jar
# inlong-manager: plugins -> manager-plugins/target/plugins
cd "$base_dir"/inlong-manager
rm -rf plugins
ln -s manager-plugins/target/plugins plugins
# mkdir inlong-sort/connectors
sort_connector_dir=$base_dir/inlong-sort/connectors
echo 'recreate connector dir: '"$sort_connector_dir"
# shellcheck disable=SC2086
rm -rf $sort_connector_dir
mkdir "$sort_connector_dir"
cd "$sort_connector_dir"
connector_names=$(grep '<module>' "$base_dir"/inlong-sort/sort-connectors/pom.xml | sed 's/<module>//g' | sed 's/<\/module>//g' | grep -v base)
echo 'All connector names: '
echo $connector_names | tr -d '\n'
for connector_name in $connector_names; do
echo 'associate connector: '"$connector_name"
connector_suffix_name=$(echo "$connector_name" | sed 's/elasticsearch-6/elasticsearch6/g' | sed 's/elasticsearch-7/elasticsearch7/g')
ln -s ../sort-connectors/"${connector_name}"/target/sort-connector-"${connector_suffix_name}"-"$project_version".jar sort-connector-"${connector_name}".jar
done
echo 'build dev env of manager finished .'
}
function main() {
if [[ "$OSTYPE" != "darwin"* ]] && [[ "$OSTYPE" != "linux-gnu"* ]]; then
echo "This script only supports macOS or Linux, current OS is $OSTYPE"
exit 1
fi
action=$1
if [ ! -n "$action" ]; then
welcome
fi
# shellcheck disable=SC2068
for one_action in ${actions[@]}; do
# shellcheck disable=SC1087
TMP=$one_action[@]
TempB=("${!TMP}")
name=${TempB[0]}
simple_name=${TempB[1]}
function_name=${TempB[3]}
desc=${TempB[4]}
if [[ X"$name" == X"$action" ]] || [[ X"$simple_name" == X"$action" ]]; then
echo 'Execute action: '"$function_name"
$function_name
fi
done
echo 'Have a nice day, bye!'
}
main $1