WizardKit/setup/macos/live-macos-startup
2021-04-04 03:14:59 -06:00

63 lines
1.7 KiB
Bash
Executable file

#!/bin/bash
#
## Init macOS env
# Update PATH
for p in /usr/local/{,opt/{e2fsprogs,ruby,util-linux}/}{bin,sbin}; do
PATH="${p}:${PATH}"
done
# Create and mount RAMDisk
if ! [[ -d /Volumes/RAM_Disk ]]; then
echo "Creating RAM Disk..."
RAM_DEV="$(hdiutil attach -nomount ram://524288)"
diskutil quiet erasevolume HFS+ RAM_Disk ${RAM_DEV}
diskutil quiet unmount ${RAM_DEV}
mkdir /Volumes/RAM_Disk
mount -t hfs -o owners ${RAM_DEV} /Volumes/RAM_Disk
fi
cd /Volumes/RAM_Disk
# Connect to WiFi?
if ! [[ -e /Volumes/RAM_Disk/.wifi ]]; then
WIFI_NET="$(fgrep ':::' /.known_networks | head -1)"
if ! ifconfig | grep -Eq '(((10|172)\.\d+|192.168)\.\d+\.\d+)' 2>/dev/null; then
echo "Connecting to WiFi..."
NET_DEV="$(/usr/sbin/networksetup \
-listallhardwareports \
| tr -d '\n' \
| grep -Eo 'Wi-Fi.*?Device.*?(en\d+)' \
| grep -Eo 'en(\d+)')"
networksetup -setairportnetwork "${NET_DEV}" "${WIFI_NET%%:::*}" "${WIFI_NET##*:::}"
touch /Volumes/RAM_Disk/.wifi
sleep 5s
fi
fi
# Dropbear (SSH)
if ! [[ -d /Volumes/RAM_Disk/.ssh ]]; then
echo "Starting SSH server..."
mkdir /Volumes/RAM_Disk/.ssh
cp /.authorized_keys /Volumes/RAM_Disk/.ssh/authorized_keys
chown -R 0:0 /Volumes/RAM_Disk/.ssh
chmod 700 /Volumes/RAM_Disk/.ssh
chmod 600 /Volumes/RAM_Disk/.ssh/authorized_keys
dropbear -s
fi
# Stay awake
echo "Getting caffeinated..."
caffeinate -id &
# Set time
if ! [[ -e /Volumes/RAM_Disk/.time_set ]]; then
echo "Updating clock..."
if ! sntp -Ss us.pool.ntp.org >/dev/null 2>&1; then
# Assuming we're running under an older version of macOS
sntp -s us.pool.ntp.org >/dev/null 2>&1
fi
touch /Volumes/RAM_Disk/.time_set
fi
# Run cmd
"$1"