github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/gopkg.in/mgo.v2/harness/setup.sh (about) 1 #!/bin/sh -e 2 3 LINE="---------------" 4 5 start() { 6 if [ -d _harness ]; then 7 echo "Daemon setup already in place, stop it first." 8 exit 1 9 fi 10 mkdir -p _harness 11 cd _harness 12 cp -a ../harness/daemons . 13 cp -a ../harness/certs . 14 echo keyfile > certs/keyfile 15 chmod 600 certs/keyfile 16 if ! mongod --help | grep -q -- --ssl; then 17 rm -rf daemons/db3 18 fi 19 COUNT=$(ls daemons | wc -l) 20 echo "Running daemons..." 21 svscan daemons & 22 SVSCANPID=$! 23 echo $SVSCANPID > svscan.pid 24 if ! kill -0 $SVSCANPID; then 25 echo "Cannot execute svscan." 26 exit 1 27 fi 28 echo "Starting $COUNT processes..." 29 for i in $(seq 30); do 30 UP=$(svstat daemons/* | grep ' up ' | grep -v ' [0-3] seconds' | wc -l) 31 echo "$UP processes up..." 32 if [ x$COUNT = x$UP ]; then 33 echo "Running setup.js with mongo..." 34 mongo --nodb ../harness/mongojs/init.js 35 exit 0 36 fi 37 sleep 1 38 done 39 echo "Failed to start processes. svstat _harness/daemons/* output:" 40 echo $LINE 41 svstat daemons/* 42 echo $LINE 43 for DAEMON in daemons/*; do 44 if $(svstat $DAEMON | grep ' up ' | grep ' [0-3] seconds' > /dev/null); then 45 echo "Logs for _harness/$DAEMON:" 46 echo $LINE 47 cat $DAEMON/log/log.txt 48 echo $LINE 49 fi 50 done 51 exit 1 52 } 53 54 stop() { 55 if [ -d _harness ]; then 56 cd _harness 57 if [ -f svscan.pid ]; then 58 kill -9 $(cat svscan.pid) 2> /dev/null || true 59 svc -dx daemons/* daemons/*/log > /dev/null 2>&1 || true 60 COUNT=$(ls daemons | wc -l) 61 echo "Shutting down $COUNT processes..." 62 while true; do 63 DOWN=$(svstat daemons/* | grep 'supervise not running' | wc -l) 64 echo "$DOWN processes down..." 65 if [ x$DOWN = x$COUNT ]; then 66 break 67 fi 68 sleep 1 69 done 70 rm svscan.pid 71 echo "Done." 72 fi 73 cd .. 74 rm -rf _harness 75 fi 76 } 77 78 79 if [ ! -f suite_test.go ]; then 80 echo "This script must be run from within the source directory." 81 exit 1 82 fi 83 84 case "$1" in 85 86 start) 87 start $2 88 ;; 89 90 stop) 91 stop $2 92 ;; 93 94 esac 95 96 # vim:ts=4:sw=4:et