Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
920b111ef4 | ||
|
|
6553f9be6d | ||
|
|
24fe1edefd | ||
|
|
9933eee1cd | ||
|
|
4fa7380216 | ||
|
|
179b4f05a3 | ||
|
|
91acff4756 | ||
|
|
b0b4d51e2c | ||
|
|
c17a132408 | ||
|
|
33fe1c7003 | ||
|
|
605b1e4c3f | ||
|
|
2170941383 | ||
|
|
63ef52185b | ||
|
|
74da03bc07 | ||
|
|
ada1b73c13 | ||
|
|
d196d18641 | ||
|
|
a360bf535a | ||
|
|
f5c6b6d40e | ||
|
|
bd3caab3fc | ||
|
|
2f0fa77831 | ||
|
|
017f79442b | ||
|
|
cf648adae7 | ||
|
|
af7aa4d0d0 | ||
|
|
0bafd0ea25 | ||
|
|
045a254219 | ||
|
|
113f3b88f5 | ||
|
|
4b77ecefd5 | ||
|
|
fc2cca07cf |
@@ -8,24 +8,24 @@ jobs:
|
|||||||
- checkout
|
- checkout
|
||||||
|
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: Bundler Restore
|
name: Gems Restore
|
||||||
keys:
|
keys:
|
||||||
- gem-cache-{{.Branch}}-{{checksum "Gemfile"}}
|
- gem-cache-{{.Branch}}-{{checksum "Gemfile"}}
|
||||||
- gem-cache-
|
- gem-cache-
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Bundler Install
|
name: Gems Install
|
||||||
command: |
|
command: |
|
||||||
gem update --system
|
gem update --system
|
||||||
bundle config set path "vendor/bundle"
|
bundle config set path "vendor/bundle"
|
||||||
bundle install
|
bundle install
|
||||||
|
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: Bundler Store
|
name: Gems Store
|
||||||
key: gem-cache-{{.Branch}}-{{checksum "Gemfile"}}
|
key: gem-cache-{{.Branch}}-{{checksum "Gemfile"}}
|
||||||
paths:
|
paths:
|
||||||
- vendor/bundle
|
- vendor/bundle
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Build
|
name: Rake
|
||||||
command: bundle exec rake
|
command: bundle exec rake
|
||||||
|
|||||||
15
.github/ISSUE_TEMPLATE.md
vendored
15
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,11 +1,8 @@
|
|||||||
## Overview
|
## Why
|
||||||
<!-- Required. Describe, briefly, the behavior experienced and desired. -->
|
<!-- Required. Describe, briefly, why this issue is important. -->
|
||||||
|
|
||||||
## Screenshots/Screencasts
|
## How
|
||||||
<!-- Optional. Attach screenshot(s) and/or screencast(s) that demo the behavior. -->
|
<!-- Optional. List exact steps (numbered) to implement or reproduce behavior. Screen shots/casts are welcome. -->
|
||||||
|
|
||||||
## Steps to Recreate
|
## Notes
|
||||||
<!-- Required. List exact steps (numbered list) to reproduce errant behavior. -->
|
<!-- Optional. Provide additional details (i.e operating system, software version(s), stack dump, etc.) -->
|
||||||
|
|
||||||
## Environment
|
|
||||||
<!-- Required. What is your operating system, software version(s), etc. -->
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
3.2.0
|
3.3.0
|
||||||
|
|||||||
10
CITATION.cff
10
CITATION.cff
@@ -1,10 +1,10 @@
|
|||||||
cff-version: 1.2.0
|
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: Provides a shell based framework for automating the setup of a macOS machine.
|
abstract: Shell scripts for automated macOS machine setup.
|
||||||
version: 16.0.0
|
version: 18.0.0
|
||||||
license: Hippocratic-2.1
|
license: Hippocratic-2.1
|
||||||
date-released: 2022-12-25
|
date-released: 2024-01-06
|
||||||
authors:
|
authors:
|
||||||
- family-names: Kuhlmann
|
- family-names: Kuhlmann
|
||||||
given-names: Brooke
|
given-names: Brooke
|
||||||
@@ -17,5 +17,5 @@ keywords:
|
|||||||
- automation
|
- automation
|
||||||
- setup
|
- setup
|
||||||
- recovery
|
- recovery
|
||||||
repository-code: https://www.alchemists.io/projects/mac_os
|
repository-code: https://alchemists.io/projects/mac_os
|
||||||
repository-artifact: https://www.alchemists.io/projects/mac_os
|
repository-artifact: https://alchemists.io/projects/mac_os
|
||||||
|
|||||||
9
Gemfile
9
Gemfile
@@ -1,9 +1,10 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
ruby File.read(".ruby-version").strip
|
ruby file: ".ruby-version"
|
||||||
|
|
||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "caliber", "~> 0.16"
|
gem "caliber", "~> 0.47"
|
||||||
# gem "git-lint", "~> 4.0"
|
gem "debug", "~> 1.9"
|
||||||
gem "rake", "~> 13.0"
|
gem "git-lint", "~> 7.0"
|
||||||
|
gem "rake", "~> 13.1"
|
||||||
|
|||||||
30
README.adoc
30
README.adoc
@@ -8,13 +8,13 @@ Shell scripts for automated macOS machine setup.
|
|||||||
|
|
||||||
This project is a framework for automating the setup of a macOS machine. In order to illustrate the
|
This project is a framework for automating the setup of a macOS machine. In order to illustrate the
|
||||||
potential of what this project can do, please see the companion
|
potential of what this project can do, please see the companion
|
||||||
link:https://www.alchemists.io/projects/mac_os-config[macOS Config] project for details. The _macOS
|
link:https://alchemists.io/projects/mac_os-config[macOS Config] project for details. The _macOS
|
||||||
Config_ project is an opinionated configuration which meets the needs of my development environment
|
Config_ project is an opinionated configuration which meets the needs of my development environment
|
||||||
but is also meant to serve as an example and guide for building your own personalized setup. Here is
|
but is also meant to serve as an example and guide for building your own personalized setup. Here is
|
||||||
how the two projects are meant to be used:
|
how the two projects are meant to be used:
|
||||||
|
|
||||||
* *macOS* (this project) - The foundational framework for building custom macOS machine setups.
|
* *macOS* (this project) - The foundational framework for building custom macOS machine setups.
|
||||||
* *link:https://www.alchemists.io/projects/mac_os-config[macOS Configuration]* - The layer on top of
|
* *link:https://alchemists.io/projects/mac_os-config[macOS Configuration]* - The layer on top of
|
||||||
this _macOS_ project which defines a custom machine implementation. The project is meant to be
|
this _macOS_ project which defines a custom machine implementation. The project is meant to be
|
||||||
forked for as many custom machine setups as needed.
|
forked for as many custom machine setups as needed.
|
||||||
|
|
||||||
@@ -40,12 +40,12 @@ toc::[]
|
|||||||
|
|
||||||
== Screencast
|
== Screencast
|
||||||
|
|
||||||
[link=https://www.alchemists.io/screencasts/mac_os]
|
[link=https://alchemists.io/screencasts/mac_os]
|
||||||
image::https://www.alchemists.io/images/screencasts/mac_os/cover.svg[Screencast,600,240,role=focal_point]
|
image::https://alchemists.io/images/screencasts/mac_os/cover.svg[Screencast,600,240,role=focal_point]
|
||||||
|
|
||||||
== Requirements
|
== Requirements
|
||||||
|
|
||||||
. link:https://www.apple.com/macos/ventura[macOS Ventura]
|
. link:https://www.apple.com/macos/sonoma[macOS Sonoma]
|
||||||
. link:https://developer.apple.com/xcode[Xcode]
|
. link:https://developer.apple.com/xcode[Xcode]
|
||||||
|
|
||||||
== Setup
|
== Setup
|
||||||
@@ -56,7 +56,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 16.0.0
|
git checkout 18.0.0
|
||||||
----
|
----
|
||||||
|
|
||||||
== Usage
|
== Usage
|
||||||
@@ -172,9 +172,9 @@ All executable scripts can be found in the `bin` folder:
|
|||||||
* `bin/run` (required): The main script and interface for macOS setup.
|
* `bin/run` (required): The main script and interface for macOS setup.
|
||||||
|
|
||||||
The `lib` folder provides the base framework for installing, re-installing, and uninstalling
|
The `lib` folder provides the base framework for installing, re-installing, and uninstalling
|
||||||
software. Everything provided via the link:https://www.alchemists.io/projects/mac_os-config[macOS
|
software. Everything provided via the link:https://alchemists.io/projects/mac_os-config[macOS
|
||||||
Config] project is built upon the functions found in the `lib` folder. See the
|
Config] project is built upon the functions found in the `lib` folder. See the
|
||||||
link:https://www.alchemists.io/projects/mac_os-config[macOS Config] project for further details.
|
link:https://alchemists.io/projects/mac_os-config[macOS Config] project for further details.
|
||||||
|
|
||||||
* `lib/settings.sh`: Defines global settings for software applications, extensions, etc.
|
* `lib/settings.sh`: Defines global settings for software applications, extensions, etc.
|
||||||
|
|
||||||
@@ -216,18 +216,18 @@ git clone https://github.com/bkuhlmann/mac_os.git
|
|||||||
cd mac_os
|
cd mac_os
|
||||||
----
|
----
|
||||||
|
|
||||||
== link:https://www.alchemists.io/policies/license[License]
|
== link:https://alchemists.io/policies/license[License]
|
||||||
|
|
||||||
== link:https://www.alchemists.io/policies/security[Security]
|
== link:https://alchemists.io/policies/security[Security]
|
||||||
|
|
||||||
== link:https://www.alchemists.io/policies/code_of_conduct[Code of Conduct]
|
== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]
|
||||||
|
|
||||||
== link:https://www.alchemists.io/policies/contributions[Contributions]
|
== link:https://alchemists.io/policies/contributions[Contributions]
|
||||||
|
|
||||||
== link:https://www.alchemists.io/projects/mac_os/versions[Versions]
|
== link:https://alchemists.io/projects/mac_os/versions[Versions]
|
||||||
|
|
||||||
== link:https://www.alchemists.io/community[Community]
|
== link:https://alchemists.io/community[Community]
|
||||||
|
|
||||||
== Credits
|
== Credits
|
||||||
|
|
||||||
Engineered by link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
Engineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
||||||
|
|||||||
9
Rakefile
9
Rakefile
@@ -1,9 +1,12 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# require "git/lint/rake/setup"
|
require "git/lint/rake/register"
|
||||||
require "rubocop/rake_task"
|
require "rubocop/rake_task"
|
||||||
|
|
||||||
|
Git::Lint::Rake::Register.call
|
||||||
RuboCop::RakeTask.new
|
RuboCop::RakeTask.new
|
||||||
|
|
||||||
# task default: %i[git_lint rubocop]
|
desc "Run code quality checks"
|
||||||
task default: %i[rubocop]
|
task quality: %i[git_lint rubocop]
|
||||||
|
|
||||||
|
task default: :quality
|
||||||
|
|||||||
@@ -1,5 +1,44 @@
|
|||||||
= Versions
|
= Versions
|
||||||
|
|
||||||
|
== 18.0.0 (2024-01-06)
|
||||||
|
|
||||||
|
* Added Rakefile quality task - Brooke Kuhlmann
|
||||||
|
* Updated Circle CI step names - Brooke Kuhlmann
|
||||||
|
* Updated GitHub issue template with simplified sections - Brooke Kuhlmann
|
||||||
|
* Updated gem dependencies - Brooke Kuhlmann
|
||||||
|
* Updated to Caliber 0.42.0 - Brooke Kuhlmann
|
||||||
|
* Updated to Ruby 3.3.0 - Brooke Kuhlmann
|
||||||
|
* Refactored Gemfile to use ruby file syntax - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 17.0.0 (2023-09-28)
|
||||||
|
|
||||||
|
* Added Debug gem - Brooke Kuhlmann
|
||||||
|
* Updated to macOS Sonoma - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 16.0.4 (2023-06-19)
|
||||||
|
|
||||||
|
* Updated to Caliber 0.35.0 - Brooke Kuhlmann
|
||||||
|
* Updated to Git Lint 6.0.0 - Brooke Kuhlmann
|
||||||
|
* Updated to Refinements 11.0.0 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 16.0.3 (2023-05-18)
|
||||||
|
|
||||||
|
* Updated to Caliber 0.30.0 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 16.0.2 (2023-04-02)
|
||||||
|
|
||||||
|
* Fixed programs without extensions to install to user directory - Brooke Kuhlmann
|
||||||
|
* Updated site URLs to use bare domain - Brooke Kuhlmann
|
||||||
|
* Updated to Ruby 3.2.1 - Brooke Kuhlmann
|
||||||
|
* Updated to Ruby 3.2.2 - Brooke Kuhlmann
|
||||||
|
|
||||||
|
== 16.0.1 (2023-02-05)
|
||||||
|
|
||||||
|
* Added Rake binstub - Brooke Kuhlmann
|
||||||
|
* Updated to Caliber 0.21.0 - Brooke Kuhlmann
|
||||||
|
* Updated to Caliber 0.25.0 - Brooke Kuhlmann
|
||||||
|
* Updated to Git Lint 5.0.0 - Brooke Kuhlmann
|
||||||
|
|
||||||
== 16.0.0 (2022-12-25)
|
== 16.0.0 (2022-12-25)
|
||||||
|
|
||||||
* Fixed Node installer to detect Node and version - Brooke Kuhlmann
|
* Fixed Node installer to detect Node and version - Brooke Kuhlmann
|
||||||
|
|||||||
6
bin/rake
Executable file
6
bin/rake
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#! /usr/bin/env ruby
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "bundler/setup"
|
||||||
|
|
||||||
|
load Gem.bin_path "rake", "rake"
|
||||||
@@ -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 Ventura.app/Contents/Resources/createinstallmedia"
|
export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS Sonoma.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"
|
||||||
|
|||||||
@@ -77,18 +77,10 @@ export -f get_install_path
|
|||||||
# Parameters: $1 (required) - The file name.
|
# Parameters: $1 (required) - The file name.
|
||||||
get_install_root() {
|
get_install_root() {
|
||||||
local file_name="$1"
|
local file_name="$1"
|
||||||
local file_extension=$(get_extension "$file_name")
|
|
||||||
|
|
||||||
# Special cases not supported by Homebrew.
|
case $(get_extension "$file_name") in
|
||||||
if [[ "$file_name" == "elm" ]]; then
|
|
||||||
printf "/usr/local/bin"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Dynamically build the install path based on file extension.
|
|
||||||
case $file_extension in
|
|
||||||
'')
|
'')
|
||||||
printf "$(get_homebrew_bin_root)";;
|
printf "/usr/local/bin";;
|
||||||
'app')
|
'app')
|
||||||
printf "/Applications";;
|
printf "/Applications";;
|
||||||
'prefPane')
|
'prefPane')
|
||||||
|
|||||||
Reference in New Issue
Block a user