From 5b4139e3c807ac3ac2f56b2bbd5590f4e1a04c79 Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Fri, 26 Mar 2021 01:18:08 -0600 Subject: [PATCH] Add missing live-macos branch This was not being pushed from a testing MacBook so I'm adding it all at once. This is unfinished, still needs scripts to prep the working macOS env from which the live env is built. El Capitan code is likely to be dropped completely. Installing or compiling dependencies in brew is problematic at this point. --- setup/macos/El Capitan/Utilities.plist | 69 ++++++++++++ .../El Capitan/com.googlecode.iterm2.plist | Bin 0 -> 14002 bytes setup/macos/Utilities.plist | 69 ++++++++++++ setup/macos/aliases | 16 +++ setup/macos/bashrc | 14 +++ setup/macos/com.googlecode.iterm2.plist | Bin 0 -> 15242 bytes setup/macos/live-macos-startup | 25 +++++ setup/macos/update-base-image | 100 ++++++++++++++++++ setup/macos/vimrc | 81 ++++++++++++++ setup/macos/zshrc | 25 +++++ 10 files changed, 399 insertions(+) create mode 100644 setup/macos/El Capitan/Utilities.plist create mode 100644 setup/macos/El Capitan/com.googlecode.iterm2.plist create mode 100644 setup/macos/Utilities.plist create mode 100644 setup/macos/aliases create mode 100644 setup/macos/bashrc create mode 100644 setup/macos/com.googlecode.iterm2.plist create mode 100755 setup/macos/live-macos-startup create mode 100755 setup/macos/update-base-image create mode 100644 setup/macos/vimrc create mode 100644 setup/macos/zshrc diff --git a/setup/macos/El Capitan/Utilities.plist b/setup/macos/El Capitan/Utilities.plist new file mode 100644 index 00000000..89304181 --- /dev/null +++ b/setup/macos/El Capitan/Utilities.plist @@ -0,0 +1,69 @@ + + + + + Buttons + + + BundlePath + /Applications/iTerm.app + DescriptionKey + Hardware Diagnostics + Path + /Applications/iTerm.app/Contents/MacOS/iTerm2 + TitleKey + WizardKit: Hardware Diagnostics + + + BundlePath + /Applications/Utilities/Disk Utility.app + DescriptionKey + Repair or erase a volume. + Path + /Applications/Utilities/Disk Utility.app/Contents/MacOS/Disk Utility + TitleKey + Disk Utility + + + Menu + + + BundlePath + /Applications/Utilities/Firmware Password Utility.app + Path + /Applications/Utilities/Firmware Password Utility.app/Contents/MacOS/Firmware Password Utility + TitleKey + Firmware Password Utility + + + BundlePath + /System/Library/CoreServices/Applications/Network Utility.app + Path + /System/Library/CoreServices/Applications/Network Utility.app/Contents/MacOS/Network Utility + TitleKey + Network Utility + + + BundlePath + /System/Library/CoreServices/Applications/RAID Utility.app + Path + /System/Library/CoreServices/Applications/RAID Utility.app/Contents/MacOS/RAID Utility + Show If + + Selector + shouldShowRAIDUtility + + TitleKey + RAID Utility + + + BundlePath + /Applications/Utilities/Terminal.app + Path + /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal + TitleKey + Terminal + + + + diff --git a/setup/macos/El Capitan/com.googlecode.iterm2.plist b/setup/macos/El Capitan/com.googlecode.iterm2.plist new file mode 100644 index 0000000000000000000000000000000000000000..71eb86a86c5ec452b76081d9fbe68c22b5fdaaeb GIT binary patch literal 14002 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 EJ2k)oG5`Po literal 0 HcmV?d00001 diff --git a/setup/macos/Utilities.plist b/setup/macos/Utilities.plist new file mode 100644 index 00000000..6d492017 --- /dev/null +++ b/setup/macos/Utilities.plist @@ -0,0 +1,69 @@ + + + + + Buttons + + + BundlePath + /Applications/iTerm-2.app + DescriptionKey + Hardware Diagnostics + Path + /Applications/iTerm-2.app/Contents/MacOS/iTerm2 + TitleKey + WizardKit: Hardware Diagnostics + + + BundlePath + /Applications/Utilities/Disk Utility.app + DescriptionKey + Repair or erase a volume. + Path + /Applications/Utilities/Disk Utility.app/Contents/MacOS/Disk Utility + TitleKey + Disk Utility + + + Menu + + + BundlePath + /Applications/Utilities/Firmware Password Utility.app + Path + /Applications/Utilities/Firmware Password Utility.app/Contents/MacOS/Firmware Password Utility + TitleKey + Firmware Password Utility + + + BundlePath + /System/Library/CoreServices/Applications/Network Utility.app + Path + /System/Library/CoreServices/Applications/Network Utility.app/Contents/MacOS/Network Utility + TitleKey + Network Utility + + + BundlePath + /System/Library/CoreServices/Applications/RAID Utility.app + Path + /System/Library/CoreServices/Applications/RAID Utility.app/Contents/MacOS/RAID Utility + Show If + + Selector + shouldShowRAIDUtility + + TitleKey + RAID Utility + + + BundlePath + /Applications/Utilities/Terminal.app + Path + /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal + TitleKey + Terminal + + + + diff --git a/setup/macos/aliases b/setup/macos/aliases new file mode 100644 index 00000000..4c91d8e6 --- /dev/null +++ b/setup/macos/aliases @@ -0,0 +1,16 @@ +alias cdtmp='cd "$(mktemp -d)"' +alias du='du -sch' +alias fix-perms='find -type d -exec chmod 755 "{}" \; && find -type f -exec chmod 644 "{}" \;' +alias less='less -S' +alias mkdir='mkdir -p' +alias mv='mv -nv' +alias q1=' ls -1' +alias q1a=' ls -1A' +alias q=' ls -lh' +alias qa=' ls -lAh' +alias qs=' ls' +alias qsa=' ls -A' +alias rm='rm -v' +alias rmdirs='find -depth -mindepth 1 -type d -exec rmdir "{}" --ignore-fail-on-non-empty \;' +alias tmux='tmux -f /etc/tmux.conf -S /Volumes/RAM_Disk/.tmux.socket' +alias vim='vim -u /.vimrc' diff --git a/setup/macos/bashrc b/setup/macos/bashrc new file mode 100644 index 00000000..421cd315 --- /dev/null +++ b/setup/macos/bashrc @@ -0,0 +1,14 @@ +export HOME=/Volumes/RAM_Disk + +# Set Locale +LC_ALL=en_US.UTF-8; export LC_ALL +LANG=en_US.UTF-8; export LANG + +# Set PATH +for p in /usr{/local/opt/{e2fsprogs,ruby,util-linux},/local,}/{bin,sbin}; do + PATH="${p}:${PATH}" +done +export PATH + +# Aliases +source /.aliases diff --git a/setup/macos/com.googlecode.iterm2.plist b/setup/macos/com.googlecode.iterm2.plist new file mode 100644 index 0000000000000000000000000000000000000000..f851e10d725cb22065357c63aa8e11781a751991 GIT binary patch literal 15242 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 literal 0 HcmV?d00001 diff --git a/setup/macos/live-macos-startup b/setup/macos/live-macos-startup new file mode 100755 index 00000000..f6c7a043 --- /dev/null +++ b/setup/macos/live-macos-startup @@ -0,0 +1,25 @@ +#!/bin/bash +# +## Init macOS env + +# Set Locale +LC_ALL=en_US.UTF-8; export LC_ALL +LANG=en_US.UTF-8; export LANG + +# Set PATH +for p in /usr{/local/opt/{e2fsprogs,ruby,util-linux},/local,}/{bin,sbin}; do + PATH="${p}:${PATH}" +done +export PATH + +# Create and mount RAMDisk +if ! [ -d /Volumes/RAM_Disk ]; then + diskutil erasevolume HFS+ RAM_Disk $(hdiutil attach -nomount ram://524288) +fi +cd /Volumes/RAM_Disk + +# Stay awake +caffeinate -id & + +# Run cmd +"$1" diff --git a/setup/macos/update-base-image b/setup/macos/update-base-image new file mode 100755 index 00000000..59015015 --- /dev/null +++ b/setup/macos/update-base-image @@ -0,0 +1,100 @@ +#!/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/WK_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" "WK_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 + +# 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"/ + rsync -aS "El Capitan/com.googlecode.iterm2.plist" "${WK_PATH}/var/root/Library/Preferences"/ +else + rsync -aS /Applications/iTerm-2.app "${WK_PATH}/Applications"/ + rsync -aS com.googlecode.iterm2.plist "${WK_PATH}/var/root/Library/Preferences"/ + rsync -aS /usr/lib/lib{apr,expat,ffi}* /Volumes/WK_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"/ + +# pipes-sh +echo "Installing pipes.sh..." +cp -a /usr/bin/tput "${WK_PATH}/usr/bin"/ + +# Timezones +if [[ ! -d "/var/db/timezone" ]]; then + echo "Installing timezones..." + rsync -aS /var/db/timezone "${WK_PATH}/var/db"/ +fi + +# zsh +echo "Installing zsh..." +cp -a /bin/zsh "${WK_PATH}/bin"/ +rsync -aS /usr/lib/zsh "${WK_PATH}/usr/lib"/ +rsync -aS /usr/share/zsh "${WK_PATH}/usr/share"/ +rsync -aS /usr/local/share/zsh "${WK_PATH}/usr/local/share"/ + +# Misc +cp -a aliases "${WK_PATH}/.aliases" +cp -a bashrc "${WK_PATH}/etc/profile" +cp -a vimrc "${WK_PATH}/.vimrc" +cp -a zshrc "${WK_PATH}/etc/zshenv" + +# 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 diff --git a/setup/macos/vimrc b/setup/macos/vimrc new file mode 100644 index 00000000..6a4dc237 --- /dev/null +++ b/setup/macos/vimrc @@ -0,0 +1,81 @@ +" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just +" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime +" you can find below. If you wish to change any of those settings, you should +" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten +" everytime an upgrade of the vim packages is performed. It is recommended to +" make changes after sourcing debian.vim since it alters the value of the +" 'compatible' option. + +" This line should not be removed as it ensures that various options are +" properly set to work with the Vim-related packages available in Debian. +runtime! debian.vim + +" Uncomment the next line to make Vim more Vi-compatible +" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous +" options, so any other options should be set AFTER setting 'compatible'. +"set compatible + +" Vim5 and later versions support syntax highlighting. Uncommenting the next +" line enables syntax highlighting by default. +syntax on + +" If using a dark background within the editing area and syntax highlighting +" turn on this option as well +set background=dark + +" Uncomment the following to have Vim jump to the last position when +" reopening a file +"if has("autocmd") +" au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif +"endif + +" Uncomment the following to have Vim load indentation rules and plugins +" according to the detected filetype. +"if has("autocmd") +" filetype plugin indent on +"endif + +" The following are commented out as they cause vim to behave a lot +" differently from regular Vi. They are highly recommended though. +"set showcmd " Show (partial) command in status line. +set showmatch " Show matching brackets. +"set ignorecase " Do case insensitive matching +"set smartcase " Do smart case matching +"set incsearch " Incremental search +"set autowrite " Automatically save before commands like :next and :make +"set hidden " Hide buffers when they are abandoned +"set mouse=a " Enable mouse usage (all modes) + +" Source a global configuration file if available +if filereadable("/etc/vim/vimrc.local") + source /etc/vim/vimrc.local +endif + +" 2Shirt Stuff +set autoindent " align the new line indent with the previous line +set expandtab " insert spaces when hitting TABs +set nowrap " I'd rather manually wrap than manually unwrap +set shiftround " round indent to multiple of 'shiftwidth' +set shiftwidth=2 " operation >> indents 2 columns; << unindents 2 columns +set softtabstop=2 " insert/delete 2 spaces when hitting a TAB/BACKSPACE +set tabstop=2 " an hard TAB displays as 2 columns + +" Python Stuff. +au FileType python set textwidth=79 " lines longer than 79 columns will be broken +au FileType python call matchadd('ColorColumn', '\%80v') + +" Do wrap stuff +au FileType mail set wrap +au FileType text set wrap + +" Enable code folding +set foldmethod=indent +" Keep all folds open when a file is opened +augroup OpenAllFoldsOnFileOpen + autocmd! + autocmd BufRead * normal zR +augroup END + +" macOS stuff +set backspace=indent,eol,start +set ruler diff --git a/setup/macos/zshrc b/setup/macos/zshrc new file mode 100644 index 00000000..5e3d7fab --- /dev/null +++ b/setup/macos/zshrc @@ -0,0 +1,25 @@ +export HOME=/Volumes/RAM_Disk +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 +export EDITOR='vim' +export VISUAL='vim' +export PAGER='less' + +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_CONFIG_DIRS="/etc/xdg" +export XDG_CONFIG_HOME="/" +export XDG_DATA_DIRS="/usr/local/share:/usr/share" +export XDG_DATA_HOME="$HOME/.local/share" + +# Ensure path arrays do not contain duplicates. +typeset -gU cdpath fpath mailpath path + +path=( + /usr/local/opt/{e2fsprogs,ruby,util-linux}/{bin,sbin} + /usr/local/{bin,sbin} + $path +) + +## Load aliases +. "/.aliases" +