blob: 20ff6355a5346fac1d5879bb67b3b6f18e70ee11 [file] [log] [blame]
Austin Schuhab8c0c52020-02-22 13:42:37 -08001#!/bin/bash
2
Jim Ostrowskidc042b52022-02-26 21:53:35 -08003set -xeuo pipefail
Austin Schuhab8c0c52020-02-22 13:42:37 -08004
5HOSTNAME="$1"
6
Jim Ostrowskidc042b52022-02-26 21:53:35 -08007# TODO<Jim>: Should probably add handling for imu hostname, too
Austin Schuhab8c0c52020-02-22 13:42:37 -08008if [[ ! "${HOSTNAME}" =~ ^pi-[0-9]*-[0-9]$ ]]; then
9 echo "Invalid hostname ${HOSTNAME}, needs to be pi-[team#]-[pi#]"
10 exit 1
11fi
12
13TEAM_NUMBER="$(echo ${HOSTNAME} | sed 's/pi-\(.*\)-.*/\1/')"
14PI_NUMBER="$(echo ${HOSTNAME} | sed 's/pi-.*-\(.*\)/\1/')"
15IP_BASE="$(echo ${TEAM_NUMBER} | sed 's/\(.*\)\(..\)/10.\1.\2/')"
16IP="${IP_BASE}.$(( 100 + ${PI_NUMBER}))"
17
18echo "Changing to team number ${TEAM_NUMBER}, IP ${IP}"
19
20sed -i "s/^static ip_address=.*$/static ip_address=${IP}\/24/" /etc/dhcpcd.conf
21
22sed -i "s/\(127\.0\.1\.1\t\).*$/\1${HOSTNAME}/" /etc/hosts
23
24echo "${HOSTNAME}" > /etc/hostname
25
Jim Ostrowskidc042b52022-02-26 21:53:35 -080026# Put corret team number in pi's IP addresses, or add them if needed
Austin Schuh97ad4472020-02-26 19:54:25 -080027if 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 -080028then
29 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
30else
31 for i in {1..6}; do
32 echo -e "${IP_BASE}.$(( i + 100 ))\tpi-${TEAM_NUMBER}-${i} pi${i}" >> /etc/hosts
33 done
34fi
35
Jim Ostrowskidc042b52022-02-26 21:53:35 -080036# Put corret team number in roborio's address, or add it if missing
Austin Schuhab8c0c52020-02-22 13:42:37 -080037if grep '^10\.[0-9]*\.[0-9]*\.2\s*roborio$' /etc/hosts >/dev/null;
38then
39 sed -i "s/^10\.[0-9]*\.[0-9]*\(\.2\s*roborio\)$/${IP_BASE}\1/" /etc/hosts
40else
41 echo -e "${IP_BASE}.2\troborio" >> /etc/hosts
42fi
43
Jim Ostrowskidc042b52022-02-26 21:53:35 -080044# Put corret team number in logger's address, or add it if missing
Austin Schuh41fad8c2021-10-23 21:25:12 -070045if grep '^10\.[0-9]*\.[0-9]*\.13\s*logger$' /etc/hosts >/dev/null;
Austin Schuhd4df9552020-09-13 18:59:50 -070046then
Austin Schuh41fad8c2021-10-23 21:25:12 -070047 sed -i "s/^10\.[0-9]*\.[0-9]*\(\.13\s*logger\)$/${IP_BASE}\1/" /etc/hosts
Austin Schuhd4df9552020-09-13 18:59:50 -070048else
Austin Schuh41fad8c2021-10-23 21:25:12 -070049 echo -e "${IP_BASE}.13\tlogger" >> /etc/hosts
Austin Schuhd4df9552020-09-13 18:59:50 -070050fi
Jim Ostrowskidc042b52022-02-26 21:53:35 -080051
52# Put corret team number in imu's address, or add it if missing
53if grep '^10\.[0-9]*\.[0-9]*\.105\s.*\s*imu$' /etc/hosts >/dev/null;
54then
Jim Ostrowskib82a22f2022-02-27 16:10:17 -080055 sed -i "s/^10\.[0-9]*\.[0-9]*\(\.[0-9]*\s*pi-\)[0-9]*\(-[0-9] pi5 imu\)$/${IP_BASE}\1${TEAM_NUMBER}\2/" /etc/hosts
Jim Ostrowskidc042b52022-02-26 21:53:35 -080056else
57 if grep '^10\.[0-9]*\.[0-9]*\.105\s*pi-[0-9]*-[0-9]*\s*pi5$' /etc/hosts
58 then
59 sed -i "s/^10\.[0-9]*\.[0-9]*\(\.[0-9]*\s*pi-\)[0-9]*\(-[0-9] pi5\)$/${IP_BASE}\1${TEAM_NUMBER}\2 imu/" /etc/hosts
60 else
61 echo -e "${IP_BASE}.105\tpi-${TEAM_NUMBER}-5 pi5 imu" >> /etc/hosts
62 fi
63fi