Compare commits

..

11 Commits

Author SHA1 Message Date
Brooke Kuhlmann
f0fded3d1e Added version release notes 2024-11-11 08:06:26 -07:00
Brooke Kuhlmann
ee28395f66 Fixed library install order
Necessary to ensure Rust libraries are installed first especially in regards to Ruby since Ruby needs `rustc` for YJIT support.

Milestone: patch
2024-11-10 11:23:57 -07:00
Brooke Kuhlmann
4c01cfa323 Added version release notes 2024-11-09 08:25:19 -07:00
Brooke Kuhlmann
d4ff286f90 Updated to Git Lint 8.7.0
link:https://alchemists.io/projects/git-lint/versions[Details].

Milestone: minor
2024-11-09 07:19:10 -07:00
Brooke Kuhlmann
def1e57fad Updated to Caliber 0.64.0
link:https://alchemists.io/projects/caliber[Details].

Milestone: minor
2024-11-09 07:05:00 -07:00
Brooke Kuhlmann
bf9bed3fdf Added version release notes 2024-11-05 18:43:13 -07:00
Brooke Kuhlmann
780c225c1f Updated to Ruby 3.3.6
link:https://www.ruby-lang.org/en/news/2024/11/05/ruby-3-3-6-released[Details].

Milestone: patch
2024-11-05 08:25:33 -07:00
Brooke Kuhlmann
fb5f547e00 Added macOS Defaults documentation link
Necessary to provide additional learning and directly link to what the defaults are and how to configure them further.

Milestone: patch
2024-10-18 08:20:23 -06:00
Brooke Kuhlmann
50bf6178b9 Added version release notes 2024-09-19 07:33:35 -06:00
Brooke Kuhlmann
53bdca4fc9 Updated to macOS 15.0.0 (Sequoia)
link:https://www.apple.com/macos/macos-sequoia[Details].

Milestone: major
2024-09-19 07:28:03 -06:00
Brooke Kuhlmann
005ea19d1c Updated install root to use XDG binary path
Necessary to ensure user installed binaries are owned by the user that installs rather than default to root access.

Milestone: major
2024-09-03 07:20:42 -06:00
11 changed files with 58 additions and 30 deletions

View File

@@ -1 +1 @@
3.3.5
3.3.6

View File

@@ -2,9 +2,9 @@ cff-version: 1.2.0
message: Please use the following metadata when citing this project in your work.
title: macOS
abstract: Shell scripts for automated macOS machine setup.
version: 18.3.2
version: 19.1.1
license: Hippocratic-2.1
date-released: 2024-09-03
date-released: 2024-11-11
authors:
- family-names: Kuhlmann
given-names: Brooke

View File

@@ -4,7 +4,7 @@ ruby file: ".ruby-version"
source "https://rubygems.org"
gem "caliber", "~> 0.58"
gem "caliber", "~> 0.64"
gem "debug", "~> 1.9"
gem "git-lint", "~> 8.0"
gem "git-lint", "~> 8.7"
gem "rake", "~> 13.2"

View File

@@ -2,6 +2,8 @@
:toclevels: 5
:figure-caption!:
:mac_os_defaults_link: link:https://macos-defaults.com[macOS Defaults]
= macOS
Shell scripts for automated macOS machine setup.
@@ -34,13 +36,13 @@ toc::[]
* Installs link:https://nodejs.org[Node] link:https://www.npmjs.com[packages].
* Installs link:https://www.ruby-lang.org[Ruby] link:https://rubygems.org[gems].
* Installs link:https://www.rust-lang.org[Rust] link:https://crates.io[crates].
* Applies basic default software settings.
* Applies {mac_os_defaults_link}.
* Configures installed software.
* Supports restoration of machine backups.
== Requirements
. link:https://www.apple.com/macos/sonoma[macOS Sonoma]
. link:https://www.apple.com/macos/macos-sequoia[macOS 15.0.0 (Sequoia)]
. link:https://developer.apple.com/xcode[Xcode]
== Setup
@@ -51,7 +53,7 @@ To install, run:
----
git clone https://github.com/bkuhlmann/mac_os.git
cd mac_os
git checkout 18.3.2
git checkout 19.1.1
----
== Usage
@@ -116,23 +118,25 @@ When attempting to create a boot disk via `bin/run B`, youll be presented wit
documentation (provided here for reference):
....
macOS Boot Disk Tips
- Use a USB drive (8GB or higher).
- Use Disk Utility to format the USB drive as "Mac OS Extended (Journaled)".
- Use Disk Utility to label the USB drive as "Untitled".
macOS Boot Disk Setup
1. Insert a USB drive (8GB or higher).
2. Use Disk Utility to format as "Mac OS Extended (Journaled)".
3. Use Disk Utility to set the schema, if available, as "GUID Partition Map".
4. Use Disk Utility to label as "Untitled".
5. Run this script to install the OS and create a bootable USB drive.
macOS Boot Disk Usage:
1. Insert the USB boot disk into the machine to be upgraded.
1. Insert the USB drive, created above, into the machine to be upgraded.
2. Reboot the machine.
3. Hold the POWER (Silicon) or OPTION (Intel) key before the Apple logo appears.
3. Press and hold the POWER key before the Apple logo appears.
4. Select the USB boot disk from the menu.
5. Use Disk Utility to delete and/or erase the hard drive including associated partitions.
6. Use Disk Utility to create a single "APFS" drive as a "GUID Partition Table".
6. Use Disk Utility to create a single "APFS" drive.
7. Install the new operating system.
macOS Boot Disk Recovery:
1. Start/restart the machine.
2. Hold the POWER (Silicon) or COMMAND+R (Intel) keys before the Apple logo appears.
2. Press and hold the POWER key before the Apple logo appears.
3. Wait for the macOS installer to load from the recovery partition.
4. Use the dialog options to launch Disk Utility, reinstall the system, etc.
....
@@ -143,8 +147,7 @@ All executable scripts can be found in the `bin` folder:
* `bin/apply_basic_settings` (optional, customizable): Applies basic and initial settings for
setting up a machine.
* `bin/apply_default_settings` (optional, customizable): Applies bare minimum system and application
defaults.
* `bin/apply_default_settings` (optional, customizable): Applies {mac_os_defaults_link}.
* `bin/configure_software` (optional, customizable): Configures installed software as part of the
post install process.
* `bin/create_boot_disk` (optional): Creates a macOS boot disk.

View File

@@ -1,5 +1,25 @@
= Versions
== 19.1.1 (2024-11-11)
* ✅ Fixed library install order - Brooke Kuhlmann
== 19.1.0 (2024-11-09)
* 🔼 Updated to Caliber 0.64.0 - Brooke Kuhlmann
* 🔼 Updated to Git Lint 8.7.0 - Brooke Kuhlmann
== 19.0.1 (2024-11-05)
* 🟢 Added macOS Defaults documentation link - Brooke Kuhlmann
* 🔼 Updated to Ruby 3.3.6 - Brooke Kuhlmann
== 19.0.0 (2024-09-19)
* 🟢 Added version release notes - Brooke Kuhlmann
* 🔼 Updated install root to use XDG binary path - Brooke Kuhlmann
* 🔼 Updated to macOS 15.0.0 (Sequoia) - Brooke Kuhlmann
== 18.3.2 (2024-09-03)
* 🟢 Added README Developer Certificate of Origin documentation - Brooke Kuhlmann

View File

@@ -2,14 +2,16 @@
# Creates macOS boot disk.
printf "%s\n" "macOS Boot Disk Tips"
printf "%s\n" " - Use a USB drive (8GB or higher)."
printf "%s\n" " - Use Disk Utility to format the USB drive as \"APSF\"."
printf "%s\n" " - Use Disk Utility to label the USB drive as \"Untitled\"."
printf "%s\n" "macOS Boot Disk Setup"
printf "%s\n" " 1. Insert a USB drive (8GB or higher)."
printf "%s\n" " 2. Use Disk Utility to format as \"Mac OS Extended (Journaled)\"."
printf "%s\n" " 3. Use Disk Utility to set the schema, if available, as \"GUID Partition Map\"."
printf "%s\n" " 4. Use Disk Utility to label as \"Untitled\"."
printf "%s\n" " 5. Run this script to install the OS and create a bootable USB drive."
printf "\n%s\n" "macOS Boot Disk Usage:"
printf "%s\n" " 1. Insert the USB boot disk into the machine to be upgraded."
printf "%s\n" " 1. Insert the USB drive, created above, into the machine to be upgraded."
printf "%s\n" " 2. Reboot the machine."
printf "%s\n" " 3. Press and hold the POWER key before the Apple logssssso appears."
printf "%s\n" " 3. Press and hold the POWER key before the Apple logo appears."
printf "%s\n" " 4. Select the USB boot disk from the menu."
printf "%s\n" " 5. Use Disk Utility to delete and/or erase the hard drive including associated partitions."
printf "%s\n" " 6. Use Disk Utility to create a single \"APFS\" drive."

View File

@@ -42,9 +42,9 @@ while true; do
printf "%s\n" " r: Restore backups."
printf "%s\n" " i: Install all (i.e. executes all of the above steps in order listed)."
printf "%s\n" " Libraries:"
printf "%s\n" " np: Install Node packages."
printf "%s\n" " rg: Install Ruby gems."
printf "%s\n" " rc: Install Rust crates."
printf "%s\n" " rg: Install Ruby gems."
printf "%s\n" " np: Install Node packages."
printf "%s\n" " l: Install libraries (i.e. executes all of the above steps in order listed)."
printf "%s\n" " Manage:"
printf "%s\n" " c: Check status of managed software."

View File

@@ -216,12 +216,15 @@ export -f install_pkg
install_program() {
local url="$1"
local program_name="$2"
local install_root=""
local install_path=""
install_root=$(get_install_root "$program_name")
install_path=$(get_install_path "$program_name")
if [[ ! -e "$install_path" ]]; then
download_file "$url" "$program_name"
mkdir -p "$install_root"
mv "$MAC_OS_WORK_PATH/$program_name" "$install_path"
chmod 755 "$install_path"
printf "%s\n" "Installed: $program_name."

View File

@@ -50,9 +50,9 @@ process_option() {
'rc')
bin/install_rust_crates;;
'l')
bin/install_node_packages
bin/install_rust_crates
bin/install_ruby_gems
bin/install_rust_crates;;
bin/install_node_packages;;
'c')
verify_homebrew_formulas
verify_homebrew_casks

View File

@@ -5,7 +5,7 @@ set -o errexit
set -o pipefail
IFS=$'\n\t'
export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS Sonoma.app/Contents/Resources/createinstallmedia"
export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS Sequoia.app/Contents/Resources/createinstallmedia"
export MAC_OS_BOOT_DISK_PATH="/Volumes/Untitled"
export MAC_OS_WORK_PATH=/tmp/downloads
export MAC_OS_CONFIG_PATH="../mac_os-config"

View File

@@ -89,7 +89,7 @@ get_install_root() {
case $(get_extension "$file_name") in
'')
printf "/usr/local/bin";;
printf "%s" "$HOME/.local/bin";;
'app')
printf "/Applications";;
'prefPane')