ping-pong.sh 753 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/bin/bash
  2. #
  3. # Boot a ping-pong network simulation using the HTTP API started by ping-pong.go
  4. set -e
  5. main() {
  6. if ! which p2psim &>/dev/null; then
  7. fail "missing p2psim binary (you need to build cmd/p2psim and put it in \$PATH)"
  8. fi
  9. info "creating 10 nodes"
  10. for i in $(seq 1 10); do
  11. p2psim node create --name "$(node_name $i)"
  12. p2psim node start "$(node_name $i)"
  13. done
  14. info "connecting node01 to all other nodes"
  15. for i in $(seq 2 10); do
  16. p2psim node connect "node01" "$(node_name $i)"
  17. done
  18. info "done"
  19. }
  20. node_name() {
  21. local num=$1
  22. echo "node$(printf '%02d' $num)"
  23. }
  24. info() {
  25. echo -e "\033[1;32m---> $(date +%H:%M:%S) ${@}\033[0m"
  26. }
  27. fail() {
  28. echo -e "\033[1;31mERROR: ${@}\033[0m" >&2
  29. exit 1
  30. }
  31. main "$@"