Compare commits

...

25 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
Brooke Kuhlmann
ecd5ed49a4 Added version release notes 2024-09-03 07:20:29 -06:00
Brooke Kuhlmann
d9df365afb Updated to Ruby 3.3.5
See link:https://www.ruby-lang.org/en/news/2024/09/03/3-3-5-released[details].

Milestone: patch
2024-09-03 07:19:38 -06:00
Brooke Kuhlmann
b176823378 Added README Developer Certificate of Origin documentation
Necessary to document what is expected of contributions in terms of legalities, licensing, and attribution.

Milestone: patch
2024-08-18 15:34:17 -06:00
Brooke Kuhlmann
5f7bd0d925 Added version release notes 2024-08-17 15:14:43 -06:00
Brooke Kuhlmann
6f7e47cdeb Updated to Ruby 3.3.4
See link:https://www.ruby-lang.org/en/news/2024/07/09/ruby-3-3-4-released/[details].

Milestone: patch
2024-07-09 07:21:26 -06:00
Brooke Kuhlmann
4bb16b5b7c Added version release notes 2024-07-08 17:24:00 -06:00
Brooke Kuhlmann
95297426aa Updated to Git Lint 8.0.0
See link:https://alchemists.io/projects/git-lint/versions[details]. Even though this is a major upgrade, I'm marking this as a _patch_ because none of the Git Lint changes effect this project.

Milestone: patch
2024-07-06 15:08:03 -06:00
Brooke Kuhlmann
494bd26be9 Updated to Ruby 3.3.3
See link:https://www.ruby-lang.org/en/news/2024/06/12/ruby-3-3-3-released[details].

Milestone: patch
2024-06-12 07:09:06 -06:00
Brooke Kuhlmann
c85015f116 Updated to Caliber 0.58.0
See link:https://alchemists.io/projects/caliber/versions[details].

Milestone: minor
2024-06-11 13:09:13 -06:00
Brooke Kuhlmann
31a3d3be86 Added version release notes 2024-06-01 11:07:13 -06:00
Brooke Kuhlmann
f76086bbf0 Updated to Ruby 3.3.2
See link:https://www.ruby-lang.org/en/news/2024/05/30/ruby-3-3-2-released/[details].

Milestone: patch
2024-05-30 07:52:04 -06:00
Brooke Kuhlmann
f4f803296e Updated citation URLs
Necessary to add the home page URL via the `url` key and update the `repository-code` key sto point to the source code repository. link:https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md#url[Details].

Milestone: patch
2024-05-27 17:00:01 -06:00
Brooke Kuhlmann
f393d8181f Added version release notes 2024-05-02 13:30:36 -06:00
Brooke Kuhlmann
a7b479f716 Updated to Ruby 3.3.1
See link:https://www.ruby-lang.org/en/news/2024/04/23/ruby-3-3-1-released[details].

Milestone: patch
2024-04-23 06:55:56 -06:00
11 changed files with 86 additions and 36 deletions

View File

@@ -1 +1 @@
3.3.0
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.2.0
version: 19.1.1
license: Hippocratic-2.1
date-released: 2024-04-21
date-released: 2024-11-11
authors:
- family-names: Kuhlmann
given-names: Brooke
@@ -17,5 +17,6 @@ keywords:
- automation
- setup
- 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
url: https://alchemists.io/projects/mac_os

View File

@@ -4,7 +4,7 @@ ruby file: ".ruby-version"
source "https://rubygems.org"
gem "caliber", "~> 0.51"
gem "caliber", "~> 0.64"
gem "debug", "~> 1.9"
gem "git-lint", "~> 7.3"
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,18 +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.
== 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
. 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
@@ -56,7 +53,7 @@ To install, run:
----
git clone https://github.com/bkuhlmann/mac_os.git
cd mac_os
git checkout 18.2.0
git checkout 19.1.1
----
== Usage
@@ -121,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.
....
@@ -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
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.
@@ -224,6 +222,8 @@ cd mac_os
== 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/community[Community]

View File

@@ -1,5 +1,49 @@
= 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
* 🔼 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)
* 🔼 Updated RuboCop to use XDG local configuration - 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')