blob: 712aba94cc0cf8ce44190ae70bae780acb06d885 [file] [log] [blame]
Austin Schuhab8c0c52020-02-22 13:42:37 -08001#!/bin/bash
2
3set -euo pipefail
4
5HOSTNAME="$1"
6
7if [[ ! "${HOSTNAME}" =~ ^pi-[0-9]*-[0-9]$ ]]; then
8 echo "Invalid hostname ${HOSTNAME}, needs to be pi-[team#]-[pi#]"
9 exit 1
10fi
11
12TEAM_NUMBER="$(echo ${HOSTNAME} | sed 's/pi-\(.*\)-.*/\1/')"
13PI_NUMBER="$(echo ${HOSTNAME} | sed 's/pi-.*-\(.*\)/\1/')"
14IP_BASE="$(echo ${TEAM_NUMBER} | sed 's/\(.*\)\(..\)/10.\1.\2/')"
15IP="${IP_BASE}.$(( 100 + ${PI_NUMBER}))"
16
17echo "Changing to team number ${TEAM_NUMBER}, IP ${IP}"
18
19sed -i "s/^static ip_address=.*$/static ip_address=${IP}\/24/" /etc/dhcpcd.conf
20
21sed -i "s/\(127\.0\.1\.1\t\).*$/\1${HOSTNAME}/" /etc/hosts
22
23echo "${HOSTNAME}" > /etc/hostname
24
Austin Schuh97ad4472020-02-26 19:54:25 -080025if grep '^10\.[0-9]*\.[0-9]*\.[0-9]*\s*pi-[0-9]*-[0-9] pi[0-9]$' /etc/hosts >/dev/null ;
Austin Schuhab8c0c52020-02-22 13:42:37 -080026then
27 sed -i "s/^10\.[0-9]*\.[0-9]*\(\.[0-9]*\s*pi-\)[0-9]*\(-[0-9] pi[0-9]\)$/${IP_BASE}\1${TEAM_NUMBER}\2/" /etc/hosts
28else
29 for i in {1..6}; do
30 echo -e "${IP_BASE}.$(( i + 100 ))\tpi-${TEAM_NUMBER}-${i} pi${i}" >> /etc/hosts
31 done
32fi
33
34if grep '^10\.[0-9]*\.[0-9]*\.2\s*roborio$' /etc/hosts >/dev/null;
35then
36 sed -i "s/^10\.[0-9]*\.[0-9]*\(\.2\s*roborio\)$/${IP_BASE}\1/" /etc/hosts
37else
38 echo -e "${IP_BASE}.2\troborio" >> /etc/hosts
39fi
40