93 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/Users/mikhailrakhmanov/go/go1.19.2/bin
export GOPRIVATE=github.com/anytypeio
NODE_GO="../../../node/cmd/node.go"
CLIENT_GO="../../../client/cmd/client.go"
DEBUG_GO="../util/cmd/debug/debug.go"
NODEMAP_YML="../util/cmd/nodesgen/nodemap.yml"
CONFIGS_DIR="../../../etc/configs"
do_usage() {
echo "usage: $0 {nodes_start|nodes_stop|clients_start|clients_stop|debug}"
echo "usage: $0 node_log <N>"
echo "usage: $0 client_log <N>"
exit 1
}
do_nodes_start() {
for NUMBER in {1..3}; do
install -d tmp/node$NUMBER/ tmp/log/
(cd tmp/node$NUMBER && go run $NODE_GO -c $CONFIGS_DIR/node$NUMBER.yml &>../log/node$NUMBER.log) &
NODE_PID=$!
echo $NODE_PID >tmp/node$NUMBER.pid
echo NODE_PID=$NODE_PID
done
}
do_nodes_stop() {
for NUMBER in {1..3}; do
NODE_PID=$(cat tmp/node$NUMBER.pid)
pkill -P $NODE_PID
pkill -f $CONFIGS_DIR/node$NUMBER.yml
done
}
do_node_log() {
local NODE_NUMBER=$1
tail -f -n 500 tmp/log/node$NODE_NUMBER.log
}
do_client_log() {
local CLIENT_NUMBER=$1
tail -f -n 500 tmp/log/client$CLIENT_NUMBER.log
}
do_clients_start() {
for NUMBER in {1..2}; do
install -d tmp/client$NUMBER/ tmp/log/
(cd tmp/client$NUMBER && go run $CLIENT_GO -c $CONFIGS_DIR/client$NUMBER.yml &>../log/client$NUMBER.log) &
CLIENT_PID=$!
echo $CLIENT_PID >tmp/client$NUMBER.pid
echo CLIENT_PID=$CLIENT_PID
done
}
do_clients_stop() {
for NUMBER in {1..2}; do
CLIENT_PID=$(cat tmp/client$NUMBER.pid)
pkill -P $CLIENT_PID
pkill -f $CONFIGS_DIR/client$NUMBER.yml
done
}
do_debug() {
go run $DEBUG_GO --config $NODEMAP_YML $*
}
case $1 in
nodes_start | nodes_stop | clients_start | clients_stop | debug)
first_arg=$1
shift
do_$first_arg $*
;;
node_log)
if [[ -z $2 ]]; then
do_usage
else
do_$1 $2
fi
;;
client_log)
if [[ -z $2 ]]; then
do_usage
else
do_$1 $2
fi
;;
*)
do_usage
;;
esac