#!/bin/bash
#
# RoomIT
# https://roomit.xyz
# If this script useful and you will visit cikarang indonesia,
# Let's drink coffee and talk about blockchain
#
# Script Automatic Build and Running Container NYM
# admin@roomit.xyz
#
#
# Container Mode Host
OPTIONS="$1"
SERVICE="$2"
STORAGE="/mainnet/salinem/data"
function help(){
echo "bash run.sh [ build | container | full-update ] [ mixnode | client | requester ]"
}
function service(){
mkdir -p ${STORAGE}
if [ "${SERVICE}" == "mixnode" ]
then
docker run -d --name nym-mixnode-server --cap-add=NET_ADMIN --cap-add=NET_RAW --network host -v ${STORAGE}:/home/nym/.nym nym-mixnode-server/latest
echo mixnode run container
elif [ "${SERVICE}" == "client" ]
then
docker run -d --name nym-client-server --cap-add=NET_ADMIN --cap-add=NET_RAW --network host -v ${STORAGE}:/home/nym/.nym nym-client-server/latest
echo client run container
elif [ "${SERVICE}" == "requester" ]
then
docker run -d --name nym-requester-server --cap-add=NET_ADMIN --cap-add=NET_RAW --network host -v ${STORAGE}:/home/nym/.nym nym-requester-server/latest
echo requester run container
else
help;
fi
}
function build(){
if [ "${SERVICE}" == "mixnode" ]
then
echo mixnode run build
docker build -f Dockerfile-Mixnode -t nym-mixnode-server/latest .
elif [ "${SERVICE}" == "client" ]
then
echo client run build
docker build -f Dockerfile-Client -t nym-client-server/latest .
elif [ "${SERVICE}" == "requester" ]
then
echo requester run build
docker build -f Dockerfile-Requester -t nym-requester-server/latest .
else
help;
fi
}
function full:update(){
build;
mkdir -p ${STORAGE}
if [ "${SERVICE}" == "mixnode" ]
then
check_container=`docker ps -a | grep "\bnym-${SERVICE}-server\b" | grep -v "\bnym-${SERVICE}-server\b"`
docker stop nym-${SERVICE}-server nym-${SERVICE}-server-old 2> /dev/null
docker rm nym-${SERVICE}-server-old
docker rename nym-${SERVICE}-server nym-${SERVICE}-server-old
docker run -d --name nym-mixnode-server --cap-add=NET_ADMIN --cap-add=NET_RAW --network host -v ${STORAGE}:/home/nym/.nym nym-mixnode-server/latest
if [ $? -eq 0 ]
then
docker rm nym-${SERVICE}-server-old
echo "Container Removed ${SERVICE}"
fi
echo mixnode run container
elif [ "${SERVICE}" == "client" ]
then
check_container=`docker ps -a | grep "\bnym-${SERVICE}-server\b" | grep -v "\bnym-${SERVICE}-server\b"`
docker stop nym-${SERVICE}-server
docker rename nym-${SERVICE}-server nym-${SERVICE}-server-old > /dev/null
docker run -d --name nym-client-server --cap-add=NET_ADMIN --cap-add=NET_RAW --network host -v ${STORAGE}:/home/nym/.nym nym-client-server/latest
if [ $? -eq 0 ]
then
docker rm nym-${SERVICE}-server-old
echo "Container Removed ${SERVICE}"
fi
echo client run container
elif [ "${SERVICE}" == "requester" ]
then
check_container=`docker ps -a | grep "\bnym-${SERVICE}-server\b" | grep -v "\bnym-${SERVICE}-server\b"`
docker stop nym-${SERVICE}-server
docker rename nym-${SERVICE}-server nym-${SERVICE}-server-old 2> /dev/null
docker run -d --name nym-requester-server --cap-add=NET_ADMIN --cap-add=NET_RAW --network host -v ${STORAGE}:/home/nym/.nym nym-requester-server/latest
if [ $? -eq 0 ]
then
docker rm nym-${SERVICE}-server-old
echo "Container Removed ${SERVICE}"
fi
echo requester run container
else
help;
fi
}
if [ "${OPTIONS}" == "build" ]
then
build;
elif [ "${OPTIONS}" == "container" ]
then
service;
elif [ "${OPTIONS}" == "full-update" ]
then
echo "Warning Systemd was not Active"
full:update;
else
help;
fi