entrypoint.sh 954 B

1234567891011121314151617181920212223242526272829
  1. #!/bin/bash
  2. zerotier-one -d
  3. # Wait for ZT service to come online before attempting queries
  4. sleep 15
  5. while true
  6. do
  7. NETWORK_COUNT=$(zerotier-cli -j listnetworks | jq -r '. | length')
  8. if [ "$NETWORK_COUNT" -gt 0 ]; then
  9. for ((j=0; j<=$((NETWORK_COUNT-1)); j++))
  10. do
  11. ROUTE_COUNT=$(zerotier-cli -j listnetworks | jq -r '.['$j'].routes | length')
  12. for ((k=0; k<=$((ROUTE_COUNT-1)); k++))
  13. do
  14. ROUTE=$(zerotier-cli -j listnetworks | jq -r '.['$j'].routes['$k'].target')
  15. EXIST=$(ip route show $ROUTE | wc -l)
  16. if [ $EXIST -eq 0 ];
  17. then
  18. IFNAME=$(zerotier-cli -j listnetworks | jq -r '.['$j'] | .portDeviceName')
  19. ip route add $ROUTE dev $IFNAME
  20. # Routes will be deleted when ZT brings the interface down
  21. fi
  22. done
  23. done
  24. sleep 15
  25. fi
  26. done