Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6598ff4584 | ||
|
|
e6db4a2270 | ||
|
|
8ce6c3fc2d | ||
|
|
3b8adb89c1 | ||
|
|
f0fded3d1e | ||
|
|
ee28395f66 | ||
|
|
4c01cfa323 | ||
|
|
d4ff286f90 | ||
|
|
def1e57fad | ||
|
|
bf9bed3fdf | ||
|
|
780c225c1f | ||
|
|
fb5f547e00 | ||
|
|
50bf6178b9 | ||
|
|
53bdca4fc9 | ||
|
|
005ea19d1c | ||
|
|
ecd5ed49a4 | ||
|
|
d9df365afb | ||
|
|
b176823378 | ||
|
|
5f7bd0d925 | ||
|
|
6f7e47cdeb | ||
|
|
4bb16b5b7c | ||
|
|
95297426aa | ||
|
|
494bd26be9 | ||
|
|
c85015f116 | ||
|
|
31a3d3be86 | ||
|
|
f76086bbf0 | ||
|
|
f4f803296e | ||
|
|
f393d8181f | ||
|
|
a7b479f716 |
@@ -1 +1 @@
|
|||||||
3.3.0
|
3.4.1
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ cff-version: 1.2.0
|
|||||||
message: Please use the following metadata when citing this project in your work.
|
message: Please use the following metadata when citing this project in your work.
|
||||||
title: macOS
|
title: macOS
|
||||||
abstract: Shell scripts for automated macOS machine setup.
|
abstract: Shell scripts for automated macOS machine setup.
|
||||||
version: 18.2.0
|
version: 20.0.0
|
||||||
license: Hippocratic-2.1
|
license: Hippocratic-2.1
|
||||||
date-released: 2024-04-21
|
date-released: 2024-12-27
|
||||||
authors:
|
authors:
|
||||||
- family-names: Kuhlmann
|
- family-names: Kuhlmann
|
||||||
given-names: Brooke
|
given-names: Brooke
|
||||||
@@ -17,5 +17,6 @@ keywords:
|
|||||||
- automation
|
- automation
|
||||||
- setup
|
- setup
|
||||||
- recovery
|
- recovery
|
||||||
repository-code: https://alchemists.io/projects/mac_os
|
repository-code: https://github.com/bkuhlmann/mac_os
|
||||||
repository-artifact: https://alchemists.io/projects/mac_os
|
repository-artifact: https://alchemists.io/projects/mac_os
|
||||||
|
url: https://alchemists.io/projects/mac_os
|
||||||
|
|||||||
4
Gemfile
4
Gemfile
@@ -4,7 +4,7 @@ ruby file: ".ruby-version"
|
|||||||
|
|
||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "caliber", "~> 0.51"
|
gem "caliber", "~> 0.68"
|
||||||
gem "debug", "~> 1.9"
|
gem "debug", "~> 1.9"
|
||||||
gem "git-lint", "~> 7.3"
|
gem "git-lint", "~> 9.0"
|
||||||
gem "rake", "~> 13.2"
|
gem "rake", "~> 13.2"
|
||||||
|
|||||||
36
README.adoc
36
README.adoc
@@ -2,6 +2,8 @@
|
|||||||
:toclevels: 5
|
:toclevels: 5
|
||||||
:figure-caption!:
|
:figure-caption!:
|
||||||
|
|
||||||
|
:mac_os_defaults_link: link:https://macos-defaults.com[macOS Defaults]
|
||||||
|
|
||||||
= macOS
|
= macOS
|
||||||
|
|
||||||
Shell scripts for automated macOS machine setup.
|
Shell scripts for automated macOS machine setup.
|
||||||
@@ -34,18 +36,13 @@ toc::[]
|
|||||||
* Installs link:https://nodejs.org[Node] link:https://www.npmjs.com[packages].
|
* 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.ruby-lang.org[Ruby] link:https://rubygems.org[gems].
|
||||||
* Installs link:https://www.rust-lang.org[Rust] link:https://crates.io[crates].
|
* 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.
|
* Configures installed software.
|
||||||
* Supports restoration of machine backups.
|
* Supports restoration of machine backups.
|
||||||
|
|
||||||
== Screencast
|
|
||||||
|
|
||||||
[link=https://alchemists.io/screencasts/mac_os]
|
|
||||||
image::https://alchemists.io/images/screencasts/mac_os/cover.svg[Screencast,600,240,role=focal_point]
|
|
||||||
|
|
||||||
== Requirements
|
== 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]
|
. link:https://developer.apple.com/xcode[Xcode]
|
||||||
|
|
||||||
== Setup
|
== Setup
|
||||||
@@ -56,7 +53,7 @@ To install, run:
|
|||||||
----
|
----
|
||||||
git clone https://github.com/bkuhlmann/mac_os.git
|
git clone https://github.com/bkuhlmann/mac_os.git
|
||||||
cd mac_os
|
cd mac_os
|
||||||
git checkout 18.2.0
|
git checkout 20.0.0
|
||||||
----
|
----
|
||||||
|
|
||||||
== Usage
|
== Usage
|
||||||
@@ -121,23 +118,25 @@ When attempting to create a boot disk via `bin/run B`, you’ll be presented wit
|
|||||||
documentation (provided here for reference):
|
documentation (provided here for reference):
|
||||||
|
|
||||||
....
|
....
|
||||||
macOS Boot Disk Tips
|
macOS Boot Disk Setup
|
||||||
- Use a USB drive (8GB or higher).
|
1. Insert a USB drive (8GB or higher).
|
||||||
- Use Disk Utility to format the USB drive as "Mac OS Extended (Journaled)".
|
2. Use Disk Utility to format as "Mac OS Extended (Journaled)".
|
||||||
- Use Disk Utility to label the USB drive as "Untitled".
|
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:
|
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.
|
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.
|
4. Select the USB boot disk from the menu.
|
||||||
5. Use Disk Utility to delete and/or erase the hard drive including associated partitions.
|
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.
|
7. Install the new operating system.
|
||||||
|
|
||||||
macOS Boot Disk Recovery:
|
macOS Boot Disk Recovery:
|
||||||
1. Start/restart the machine.
|
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.
|
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.
|
4. Use the dialog options to launch Disk Utility, reinstall the system, etc.
|
||||||
....
|
....
|
||||||
@@ -148,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
|
* `bin/apply_basic_settings` (optional, customizable): Applies basic and initial settings for
|
||||||
setting up a machine.
|
setting up a machine.
|
||||||
* `bin/apply_default_settings` (optional, customizable): Applies bare minimum system and application
|
* `bin/apply_default_settings` (optional, customizable): Applies {mac_os_defaults_link}.
|
||||||
defaults.
|
|
||||||
* `bin/configure_software` (optional, customizable): Configures installed software as part of the
|
* `bin/configure_software` (optional, customizable): Configures installed software as part of the
|
||||||
post install process.
|
post install process.
|
||||||
* `bin/create_boot_disk` (optional): Creates a macOS boot disk.
|
* `bin/create_boot_disk` (optional): Creates a macOS boot disk.
|
||||||
@@ -224,6 +222,8 @@ cd mac_os
|
|||||||
|
|
||||||
== link:https://alchemists.io/policies/contributions[Contributions]
|
== link:https://alchemists.io/policies/contributions[Contributions]
|
||||||
|
|
||||||
|
== link:https://alchemists.io/policies/developer_certificate_of_origin[Developer Certificate of Origin]
|
||||||
|
|
||||||
== link:https://alchemists.io/projects/mac_os/versions[Versions]
|
== link:https://alchemists.io/projects/mac_os/versions[Versions]
|
||||||
|
|
||||||
== link:https://alchemists.io/community[Community]
|
== link:https://alchemists.io/community[Community]
|
||||||
|
|||||||
@@ -1,5 +1,55 @@
|
|||||||
= Versions
|
= Versions
|
||||||
|
|
||||||
|
== 20.0.0 (2024-12-27)
|
||||||
|
|
||||||
|
* 🔼 Updated to Caliber 0.68.0 - Brooke Kuhlmann
|
||||||
|
* 🔼 Updated to Git Lint 9.0.0 - Brooke Kuhlmann
|
||||||
|
* 🔼 Updated to Ruby 3.4.0 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 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
|
||||||
|
* 🔼 Updated to Ruby 3.3.5 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 18.3.1 (2024-08-17)
|
||||||
|
|
||||||
|
* 🔼 Updated to Ruby 3.3.4 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 18.3.0 (2024-07-08)
|
||||||
|
|
||||||
|
* 🔼 Updated to Caliber 0.58.0 - Brooke Kuhlmann
|
||||||
|
* 🔼 Updated to Git Lint 8.0.0 - Brooke Kuhlmann
|
||||||
|
* 🔼 Updated to Ruby 3.3.3 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 18.2.2 (2024-06-01)
|
||||||
|
|
||||||
|
* 🔼 Updated citation URLs - Brooke Kuhlmann
|
||||||
|
* 🔼 Updated to Ruby 3.3.2 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 18.2.1 (2024-05-02)
|
||||||
|
|
||||||
|
* 🔼 Updated to Ruby 3.3.1 - Brooke Kuhlmann
|
||||||
|
|
||||||
== 18.2.0 (2024-04-21)
|
== 18.2.0 (2024-04-21)
|
||||||
|
|
||||||
* 🔼 Updated RuboCop to use XDG local configuration - Brooke Kuhlmann
|
* 🔼 Updated RuboCop to use XDG local configuration - Brooke Kuhlmann
|
||||||
|
|||||||
@@ -2,14 +2,16 @@
|
|||||||
|
|
||||||
# Creates macOS boot disk.
|
# Creates macOS boot disk.
|
||||||
|
|
||||||
printf "%s\n" "macOS Boot Disk Tips"
|
printf "%s\n" "macOS Boot Disk Setup"
|
||||||
printf "%s\n" " - Use a USB drive (8GB or higher)."
|
printf "%s\n" " 1. Insert a USB drive (8GB or higher)."
|
||||||
printf "%s\n" " - Use Disk Utility to format the USB drive as \"APSF\"."
|
printf "%s\n" " 2. Use Disk Utility to format as \"Mac OS Extended (Journaled)\"."
|
||||||
printf "%s\n" " - Use Disk Utility to label the USB drive as \"Untitled\"."
|
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 "\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" " 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" " 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" " 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."
|
printf "%s\n" " 6. Use Disk Utility to create a single \"APFS\" drive."
|
||||||
|
|||||||
4
bin/run
4
bin/run
@@ -42,9 +42,9 @@ while true; do
|
|||||||
printf "%s\n" " r: Restore backups."
|
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" " i: Install all (i.e. executes all of the above steps in order listed)."
|
||||||
printf "%s\n" " Libraries:"
|
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" " 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" " l: Install libraries (i.e. executes all of the above steps in order listed)."
|
||||||
printf "%s\n" " Manage:"
|
printf "%s\n" " Manage:"
|
||||||
printf "%s\n" " c: Check status of managed software."
|
printf "%s\n" " c: Check status of managed software."
|
||||||
|
|||||||
@@ -216,12 +216,15 @@ export -f install_pkg
|
|||||||
install_program() {
|
install_program() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
local program_name="$2"
|
local program_name="$2"
|
||||||
|
local install_root=""
|
||||||
local install_path=""
|
local install_path=""
|
||||||
|
|
||||||
|
install_root=$(get_install_root "$program_name")
|
||||||
install_path=$(get_install_path "$program_name")
|
install_path=$(get_install_path "$program_name")
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
if [[ ! -e "$install_path" ]]; then
|
||||||
download_file "$url" "$program_name"
|
download_file "$url" "$program_name"
|
||||||
|
mkdir -p "$install_root"
|
||||||
mv "$MAC_OS_WORK_PATH/$program_name" "$install_path"
|
mv "$MAC_OS_WORK_PATH/$program_name" "$install_path"
|
||||||
chmod 755 "$install_path"
|
chmod 755 "$install_path"
|
||||||
printf "%s\n" "Installed: $program_name."
|
printf "%s\n" "Installed: $program_name."
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ process_option() {
|
|||||||
'rc')
|
'rc')
|
||||||
bin/install_rust_crates;;
|
bin/install_rust_crates;;
|
||||||
'l')
|
'l')
|
||||||
bin/install_node_packages
|
bin/install_rust_crates
|
||||||
bin/install_ruby_gems
|
bin/install_ruby_gems
|
||||||
bin/install_rust_crates;;
|
bin/install_node_packages;;
|
||||||
'c')
|
'c')
|
||||||
verify_homebrew_formulas
|
verify_homebrew_formulas
|
||||||
verify_homebrew_casks
|
verify_homebrew_casks
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ set -o errexit
|
|||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
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_BOOT_DISK_PATH="/Volumes/Untitled"
|
||||||
export MAC_OS_WORK_PATH=/tmp/downloads
|
export MAC_OS_WORK_PATH=/tmp/downloads
|
||||||
export MAC_OS_CONFIG_PATH="../mac_os-config"
|
export MAC_OS_CONFIG_PATH="../mac_os-config"
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ get_install_root() {
|
|||||||
|
|
||||||
case $(get_extension "$file_name") in
|
case $(get_extension "$file_name") in
|
||||||
'')
|
'')
|
||||||
printf "/usr/local/bin";;
|
printf "%s" "$HOME/.local/bin";;
|
||||||
'app')
|
'app')
|
||||||
printf "/Applications";;
|
printf "/Applications";;
|
||||||
'prefPane')
|
'prefPane')
|
||||||
|
|||||||
Reference in New Issue
Block a user