1#!/usr/bin/env bash
2set -euo pipefail
3ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
4source "$ROOT/lib.sh"
5
6#──────────────────────────────────────────────────────────────
7# STATE: Computer network identity (edit these values)
8#──────────────────────────────────────────────────────────────
9COMPUTER_NAME="torben-mba"
10HOST_NAME="torben-mba"
11LOCAL_HOST_NAME="torben-mba"
12
13#──────────────────────────────────────────────────────────────
14# LOGIC: Idempotent network name configuration
15#──────────────────────────────────────────────────────────────
16
17log "Checking network names"
18
19current_computer=$(scutil --get ComputerName 2>/dev/null || echo "")
20current_host=$(scutil --get HostName 2>/dev/null || echo "")
21current_local=$(scutil --get LocalHostName 2>/dev/null || echo "")
22
23changed=false
24
25if [[ "$current_computer" != "$COMPUTER_NAME" ]]; then
26 log "Setting ComputerName: $COMPUTER_NAME"
27 sudo scutil --set ComputerName "$COMPUTER_NAME"
28 changed=true
29fi
30
31if [[ "$current_host" != "$HOST_NAME" ]]; then
32 log "Setting HostName: $HOST_NAME"
33 sudo scutil --set HostName "$HOST_NAME"
34 changed=true
35fi
36
37if [[ "$current_local" != "$LOCAL_HOST_NAME" ]]; then
38 log "Setting LocalHostName: $LOCAL_HOST_NAME"
39 sudo scutil --set LocalHostName "$LOCAL_HOST_NAME"
40 changed=true
41fi
42
43if [[ "$changed" == "true" ]]; then
44 log "Flushing DNS cache"
45 sudo dscacheutil -flushcache
46 sudo killall -HUP mDNSResponder
47else
48 log "Network names already configured"
49fi
50
51log "Network names verified"