LibrePlanet: Conference/2023/Streaming/flip-network.sh
From LibrePlanet
< LibrePlanet:Conference | 2023 | Streaming
#! /bin/bash set -e server_ip="209.51.188.57/32" wifi_dev="$(ip route | grep "^default" | grep "dev wl" | head -1 | grep -o "dev [^ ]*" | sed -e "s/dev //")" eth_dev="$(ip route | grep "^default" | grep "dev [en|eth]" | head -1 | grep -o "dev [^ ]*" | sed -e "s/dev //")" wifi_via="$(ip route | grep "^default" | grep "dev wl" | head -1 | grep -o "via [^ ]*" | sed -e "s/via //")" eth_via="$(ip route | grep "^default" | grep "dev [en|eth]" | head -1 | grep -o "via [^ ]*" | sed -e "s/via //")" if [[ $# -ne 1 ]] || ([[ $1 != "-w" ]] && [[ $1 != "-c" ]]) ; then echo "flip-networks.sh: (change routing to live-master.fsf.org between wifi and ethernet)" echo "usage: $0 [-c|-w]" >&2 echo " -c: use ethernet" >&2 echo " -w: use wifi" >&2 exit 1 fi if [[ $1 == "-w" ]] ; then ip route del "$server_ip" via "$eth_via" dev "$eth_dev" || echo "no eth route to delete" >&2 ip route add "$server_ip" via "$wifi_via" dev "$wifi_dev" || echo "already routing by wifi" >&2 echo echo "routing by wifi" >&2 elif [[ $1 == "-c" ]] ; then ip route del "$server_ip" via "$wifi_via" dev "$wifi_dev" || echo "no wifi route to delete" >&2 ip route add "$server_ip" via "$eth_via" dev "$eth_dev" || echo "already routing by eth" >&2 echo echo "routing by ethernet" >&2 fi