rendered paste body#!/bin/sh#set -x # variables TERMINAL=xfce4-terminal# TERMOPTIONBASE=2000STARTI=0PROGRAM=p2p_node_ref# VALGRIND="valgrind --leak-check=full --show-reachable=yes"VALGRIND=""VERBOSE=9#if [ "$BASE" == "" ] ; then # export BASE=2000#fi#if [ "$STARTI" == "" ] ; then # export STARTI=0#fi#if [ "$TERMINAL" == "" ] ; then # export TERMINAL=xterm#fiusage(){cat <<EOFstart_server c [n] : start a client [to server n] d [n] : start [n] detached server x [n] : start [n] server in a xterm [n] : if [n] > 1 then connect server(i) with server(i-1) f [n] : find pid of server [n] g [n] : start gdb and connect to it to server [n] k : kill all serversBASE=x start_server [] default BASE=0EOF}server_name(){ echo p2p_$1}base(){ echo `expr $BASE + $1`}port_ui(){ echo `base $1`1}port_tcp(){ echo `base $1`2}port_udp(){ echo `base $1`3}start_line(){ NUM=$1 DIR=$2 DST=$3 OTHER=$4 echo ${VALGRIND} ${DIR}/${PROGRAM} \ --dir=${DST} \ --listening-ip=127.0.0.1 \ --server-name=`server_name ${NUM}` \ --ui-tcp-port=`port_ui ${NUM}` \ --p2p-tcp-port=`port_tcp ${NUM}` \ --p2p-udp-port=`port_udp ${NUM}` \ --verbose=${VERBOSE} \ ${OTHER}}find_server_pid(){ SERVER_NAME=`server_name $1` echo `ps ax | grep ${SERVER_NAME} | egrep -v 'xterm|bash|grep' | cut -d ' ' -f 1`}start_serv(){ MODE=$1 NUM=$2 DIR=$3 OTHER=$4 TMPDIR=/tmp DST=${TMPDIR}/p2p_dir_${NUM} mkdir -p ${DST} touch ${DST}/p2p_${NUM} echo "file from node ${NUM}" > ${DST}/p2p_${NUM} echo -n "starting node ${NUM} : " case "${MODE}" in "x" ) ${TERMINAL} --title Server_T${NUM} --command "`start_line ${NUM} ${DIR} ${DST} ${OTHER}`" & ;; "d" ) `start_line ${NUM} ${DIR} ${DST} ${OTHER}` ;; * ) usage exit 1 ;; esac sleep 1 echo pid=`find_server_pid ${NUM}`}if [ $# -lt 1 ] ; then usage exit 1else case "$1" in "c" ) if [ $# -gt 1 ] ; then NUM=$2 ${TERMINAL} --title client_T${NUM} --command "telnet localhost `port_ui $NUM` &" else ${TERMINAL} --command "telnet &" fi ;; "d" | "x" ) DIR=`dirname $0` start_serv $1 $STARTI ${DIR} I=`expr ${STARTI} + 1` if [ $# -gt 1 ] ; then while [ $I -lt $2 ] ; do IM=`expr $I - 1` start_serv $1 $I ${DIR} --connect=127.0.0.1::`port_tcp $IM`:`port_udp $IM` I=`expr $I + 1` done fi ;; "k" ) killall -9 ${PROGRAM} ;; "f" ) echo server $2 : pid=`find_server_pid $2` ;; "g" ) gdb `dirname $0`/${PROGRAM} `find_server_pid $2` ;; "D" ) ddd `dirname $0`/${PROGRAM} `find_server_pid $2` ;; * ) usage ;; esacfi