bitxhub/scripts/integration.sh

80 lines
1.8 KiB
Bash

#!/usr/bin/env bash
set -e
CURRENT_PATH=$(pwd)
PROJECT_PATH=$(dirname "${CURRENT_PATH}")
CONFIG_PATH=${PROJECT_PATH}/config
BUILD_PATH=${CURRENT_PATH}/build
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m'
N=4
function print_blue() {
printf "${BLUE}%s${NC}\n" "$1"
}
# The sed commend with system judging
# Examples:
# sed -i 's/a/b/g' bob.txt => x_replace 's/a/b/g' bob.txt
function x_replace() {
system=$(uname)
if [ "${system}" = "Linux" ]; then
sed -i "$@"
else
sed -i '' "$@"
fi
}
function prepare() {
print_blue "===> Generating $N nodes configuration"
rm -rf "${BUILD_PATH}"
mkdir "${BUILD_PATH}"
for ((i = 1; i < N + 1; i = i + 1)); do
root=${BUILD_PATH}/node${i}
mkdir -p "${root}"
cp -rf "${CURRENT_PATH}"/certs/node${i}/certs "${root}"
cp -rf "${CONFIG_PATH}"/* "${root}"
echo " #!/usr/bin/env bash" >"${root}"/start.sh
echo "./bitxhub --root \$(pwd)" start >>"${root}"/start.sh
bitxhubConfig=${root}/bitxhub.toml
networkConfig=${root}/network.toml
x_replace "s/60011/6001${i}/g" "${bitxhubConfig}"
x_replace "s/9091/909${i}/g" "${bitxhubConfig}"
x_replace "s/53121/5312${i}/g" "${bitxhubConfig}"
x_replace "s/9091/909${i}/g" "${root}"/api
x_replace "1s/1/${i}/" "${networkConfig}"
done
print_blue "===> Building plugin"
cd "${PROJECT_PATH}"/internal/plugins
make raft
for ((i = 1; i < N + 1; i = i + 1)); do
cp -rf "${PROJECT_PATH}"/internal/plugins/build "${BUILD_PATH}"/node${i}/plugins
done
}
function compile() {
print_blue "===> Compiling bitxhub"
cd "${PROJECT_PATH}"
make install
}
prepare
compile
bitxhub version
cd "${CURRENT_PATH}"
for ((i = 1; i < N + 1; i = i + 1)); do
echo "Start node${i}"
nohup bitxhub --repo="${BUILD_PATH}"/node${i} start &
done