#!/bin/bash # ## Update BaseImage for use as WK set -o errexit set -o errtrace set -o nounset set -o pipefail # Prep echo "Initializing..." BASE_IMAGE="$1" IMAGE_DEV="$(hdiutil attach "${BASE_IMAGE}" | grep -Eo '(/dev/disk[0-9]+)\b')" OS_VERSION="$(ls /Volumes/*Base\ System | grep -E 'OS X|macOS' | sed -E 's/Install (OS X|macOS) (.*)\.app/\2/')" OUT_NAME="${HOME}/Desktop/WK ${OS_VERSION} ($(date +"%Y-%m-%d"))" WK_PATH="/Volumes/1201_UFD" # Convert to a 4 GB R/W image echo "Creating read-write copy of the ${OS_VERSION} Base System image..." hdiutil create -srcdevice "${IMAGE_DEV}s1" -format UDSB "${OUT_NAME}.sparsebundle" hdiutil detach "${IMAGE_DEV}" hdiutil resize -size 4g "${OUT_NAME}.sparsebundle" hdiutil attach "${OUT_NAME}.sparsebundle" diskutil rename "OS X Base System" "1201_UFD" # Remove Install app echo "Removing Install app..." rm -R "${WK_PATH}"/Install*.app # Update Utilities menu echo "Updating Utilities menu..." if [[ "${OS_VERSION}" == "El Capitan" ]]; then cp -a "El Capitan/Utilities.plist" "${WK_PATH}/System/Installation/CDIS/OS X Utilities.app/Contents/Resources/Utilities.plist" else cp -a Utilities.plist "${WK_PATH}/System/Installation/CDIS/macOS Utilities.app/Contents/Resources/Utilities.plist" fi # 1201 CA echo "Installing 1201 CA..." cp -a ../windows/bin/1201_Root_CA.crt "${WK_PATH}/.1201_Root_CA.crt" # Homebrew echo "Installing Hombrew..." mkdir -p "${WK_PATH}/usr/local/bin" ln -s python3 "${WK_PATH}/usr/local/bin/python" rsync -aS /opt/ "${WK_PATH}/opt"/ rsync -aS --exclude='.git*' /usr/local/{Cellar,Frameworks,Homebrew,bin,etc,include,lib,libexec,opt,sbin,share,var} "${WK_PATH}/usr/local"/ # Fonts echo "Installing Fonts..." cp -a /Library/Fonts/Inconsolata*ttf "${WK_PATH}/System/Library/Fonts"/ # iTerm2 echo "Installing iTerm2..." if [[ "${OS_VERSION}" == "El Capitan" ]]; then rsync -aS /Applications/iTerm.app "${WK_PATH}/Applications"/ else rsync -aS /Applications/iTerm-2.app "${WK_PATH}/Applications"/ rsync -aS /usr/lib/lib{apr,expat,ffi}* /Volumes/1201_UFD/usr/lib/ rsync -aS /System/Library/Frameworks/{MetalKit,Quartz*}.framework "${WK_PATH}/System/Library/Frameworks"/ fi cp -a ../linux/include/airootfs/etc/skel/.tmux.conf "${WK_PATH}/etc/tmux.conf" rsync -aS /System/Library/Colors/System.clr "${WK_PATH}/System/Library/Colors"/ rsync -aS /System/Library/Frameworks/{Scripting,ScriptingBridge,LocalAuthentication}.framework "${WK_PATH}/System/Library/Frameworks"/ rsync -aS /usr/bin/locale "${WK_PATH}/usr/bin"/ rsync -aLS /usr/share/locale/en_US.UTF-8 "${WK_PATH}/usr/share/locale"/ rsync -aS com.googlecode.iterm2.plist "${WK_PATH}/var/root/Library/Preferences"/ # pipes-sh echo "Installing pipes.sh..." cp -a /usr/bin/tput "${WK_PATH}/usr/bin"/ # WizardKit echo "Installing WizardKit env..." touch "${WK_PATH}/.wk-live-macos" ln -s /Volumes/RAM_Disk/Logs "${WK_PATH}/var/root/Logs" cp -a ../../images/macOS.png "${WK_PATH}/usr/local/wallpaper.png" rsync -aS /usr/bin/{env,killall} "${WK_PATH}/usr/bin"/ rsync -aS live-macos-startup ../../scripts/ "${WK_PATH}/usr/local/bin"/ # Convert to compressed read-only image #echo "Converting to read-only image..." #hdiutil convert -format UDZO -o "${OUT_NAME}.sparsebundle" "${OUT_NAME}.dmg" # TODO