Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d78eb3063d | ||
|
|
a547d061b2 | ||
|
|
f58f146074 | ||
|
|
6c2de5a5bb | ||
|
|
4d9ad7315d | ||
|
|
a895090ca9 | ||
|
|
0c7ae2ba4e | ||
|
|
caa2adb45c | ||
|
|
cc75094d5f | ||
|
|
d03762425a | ||
|
|
2d58c953e1 | ||
|
|
bb329535c7 | ||
|
|
72f5fcb03e | ||
|
|
7da69e543f | ||
|
|
0b5c5a6cd8 | ||
|
|
450c04e126 |
@@ -1 +1 @@
|
|||||||
2.5.1
|
2.6.0
|
||||||
|
|||||||
20
CHANGES.md
20
CHANGES.md
@@ -1,3 +1,23 @@
|
|||||||
|
# 7.0.0 (2019-01-01)
|
||||||
|
|
||||||
|
- Fixed Circle CI cache for Ruby version.
|
||||||
|
- Fixed installation of apps with no extension.
|
||||||
|
- Fixed program installs.
|
||||||
|
- Added Circle CI Bundler cache.
|
||||||
|
- Added README boot disk documentation.
|
||||||
|
- Added README troubleshooting section.
|
||||||
|
- Updated to Git Cop 3.0.0.
|
||||||
|
- Updated to Ruby 2.6.0.
|
||||||
|
- Removed Java development tools from setup.
|
||||||
|
- Removed download file function.
|
||||||
|
|
||||||
|
# 6.1.0 (2018-11-01)
|
||||||
|
|
||||||
|
- Updated to Java SE Development Kit 11.
|
||||||
|
- Updated to Ruby 2.5.2.
|
||||||
|
- Updated to Ruby 2.5.3.
|
||||||
|
- Removed unnecessary source code comments.
|
||||||
|
|
||||||
# 6.0.0 (2018-10-01)
|
# 6.0.0 (2018-10-01)
|
||||||
|
|
||||||
- Added XCode install tip.
|
- Added XCode install tip.
|
||||||
|
|||||||
2
Gemfile
2
Gemfile
@@ -3,4 +3,4 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "rake", "~> 12.0"
|
gem "rake", "~> 12.0"
|
||||||
gem "git-cop", "~> 2.2"
|
gem "git-cop", "~> 3.0"
|
||||||
|
|||||||
43
README.md
43
README.md
@@ -26,7 +26,9 @@ the two projects are meant to be used:
|
|||||||
- [Requirements](#requirements)
|
- [Requirements](#requirements)
|
||||||
- [Setup](#setup)
|
- [Setup](#setup)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
|
- [Boot Disk](#boot-disk)
|
||||||
- [Customization](#customization)
|
- [Customization](#customization)
|
||||||
|
- [Troubleshooting](#troubleshooting)
|
||||||
- [Versioning](#versioning)
|
- [Versioning](#versioning)
|
||||||
- [Code of Conduct](#code-of-conduct)
|
- [Code of Conduct](#code-of-conduct)
|
||||||
- [Contributions](#contributions)
|
- [Contributions](#contributions)
|
||||||
@@ -41,9 +43,7 @@ the two projects are meant to be used:
|
|||||||
- Provides a command line interface, written in Bash, with no additional dependencies for
|
- Provides a command line interface, written in Bash, with no additional dependencies for
|
||||||
installation and management of a macOS machine.
|
installation and management of a macOS machine.
|
||||||
- Supports macOS boot disk creation for fresh install of operating system.
|
- Supports macOS boot disk creation for fresh install of operating system.
|
||||||
- Downloads and installs development tools (required by Homebrew):
|
- Downloads and installs [Xcode Command Line Tools](https://developer.apple.com/xcode).
|
||||||
- [Xcode Command Line Tools](https://developer.apple.com/xcode)
|
|
||||||
- [Java SE Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
|
|
||||||
- Downloads, installs, and configures [Homebrew Formulas](http://brew.sh).
|
- Downloads, installs, and configures [Homebrew Formulas](http://brew.sh).
|
||||||
- Downloads, installs, and configures [Homebrew Casks](https://caskroom.github.io).
|
- Downloads, installs, and configures [Homebrew Casks](https://caskroom.github.io).
|
||||||
- Downloads, installs, and configures
|
- Downloads, installs, and configures
|
||||||
@@ -72,7 +72,7 @@ Current Version (stable):
|
|||||||
|
|
||||||
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 6.0.0
|
git checkout 7.0.0
|
||||||
|
|
||||||
Master Version (unstable):
|
Master Version (unstable):
|
||||||
|
|
||||||
@@ -125,6 +125,31 @@ been loaded.
|
|||||||
It is recommended that the `mac_os` project directory not be deleted and kept on the local machine
|
It is recommended that the `mac_os` project directory not be deleted and kept on the local machine
|
||||||
in order to manage installed software and benefit from future upgrades.
|
in order to manage installed software and benefit from future upgrades.
|
||||||
|
|
||||||
|
### Boot Disk
|
||||||
|
|
||||||
|
When attempting to create a boot disk via `bin/run B`, you'll be presented with the following
|
||||||
|
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 Usage:
|
||||||
|
1. Insert the USB boot disk into the machine to be upgraded.
|
||||||
|
2. Reboot the machine.
|
||||||
|
3. Hold down the OPTION key before the Apple logo appears.
|
||||||
|
4. Select the USB boot disk from the menu.
|
||||||
|
5. Use Disk Utility to format the machine's drive as "APFS (Encrypted)".
|
||||||
|
6. Install the new operating system.
|
||||||
|
|
||||||
|
macOS Reinstall:
|
||||||
|
1. Click the Apple icon from the operating system main menu.
|
||||||
|
2. Select the "Restart..." menu option.
|
||||||
|
3. Hold down the COMMAND+R keys before the Apple logo appears.
|
||||||
|
4. Wait for the macOS installer to load from the recovery partition.
|
||||||
|
5. Use the dialog options to launch Disk Utility, reinstall the system, etc.
|
||||||
|
|
||||||
### Customization
|
### Customization
|
||||||
|
|
||||||
All executable scripts can be found in the `bin` folder:
|
All executable scripts can be found in the `bin` folder:
|
||||||
@@ -152,6 +177,16 @@ project is built upon the functions found in the `lib` folder. See the
|
|||||||
|
|
||||||
- `lib/settings.sh`: Defines global settings for software applications, extensions, etc.
|
- `lib/settings.sh`: Defines global settings for software applications, extensions, etc.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
When using the boot disk, you might experience a situation where you see a black screen with a white
|
||||||
|
circle and diagonal line running through it. This means macOS lost or can't find the boot disk for
|
||||||
|
some reason. To correct this, shut down and boot up the system again while holding down the
|
||||||
|
`OPTION+COMMAND+R+P` keys simultaneously. You might want to wait for the system boot sound to happen
|
||||||
|
a few times before releasing the keys. This will clear the system NVRAM/PRAM. At this point you can
|
||||||
|
shut down and restart the system following the boot disk instructions (the boot disk will be
|
||||||
|
recognized now).
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
Read [Semantic Versioning](https://semver.org) for details. Briefly, it means:
|
Read [Semantic Versioning](https://semver.org) for details. Briefly, it means:
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Applies basic system settings.
|
# Applies basic system settings.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/apply_basic_settings"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/apply_basic_settings"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Applies default settings.
|
# Applies default settings.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/apply_default_settings"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/apply_default_settings"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Creates macOS boot disk.
|
# Creates macOS boot disk.
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
printf "macOS Boot Disk Tips\n"
|
printf "macOS Boot Disk Tips\n"
|
||||||
printf " - Use a USB drive (8GB or higher).\n"
|
printf " - Use a USB drive (8GB or higher).\n"
|
||||||
printf " - Use Disk Utility to format the USB drive as \"Mac OS Extended (Journaled)\".\n"
|
printf " - Use Disk Utility to format the USB drive as \"Mac OS Extended (Journaled)\".\n"
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Installs App Store software.
|
# Installs App Store software.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_app_store"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_app_store"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Installs applications.
|
# Installs applications.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_applications"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_applications"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Installs development tooling requirements.
|
# Installs development tooling requirements.
|
||||||
|
|
||||||
printf "Installing Xcode CLI tools...\n"
|
printf "Installing Xcode CLI tools...\n"
|
||||||
@@ -12,13 +11,3 @@ if [[ "$xcode_response" != "y" ]]; then
|
|||||||
printf "ERROR: Xcode CLI tools must be installed before proceeding.\n"
|
printf "ERROR: Xcode CLI tools must be installed before proceeding.\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "Installing $JAVA_LABEL...\n"
|
|
||||||
printf "%s\n" "You must manually accept the license and download the $JAVA_LABEL: $JAVA_DOWNLOAD_URL."
|
|
||||||
open $JAVA_DOWNLOAD_URL
|
|
||||||
|
|
||||||
read -p "Have you completed the $JAVA_LABEL install (y/n)? " java_response
|
|
||||||
if [[ "$java_response" != "y" ]]; then
|
|
||||||
printf "ERROR: $JAVA_LABEL must be installed before proceeding.\n"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Installs application extensions.
|
# Installs application extensions.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_extensions"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_extensions"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Installs Homebrew Cask software.
|
# Installs Homebrew Cask software.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew_casks"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew_casks"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Installs Homebrew Formula software.
|
# Installs Homebrew Formula software.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew_formulas"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew_formulas"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Performs restoration of backup data.
|
# Performs restoration of backup data.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/restore_backup"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/restore_backup"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
6
bin/run
6
bin/run
@@ -1,12 +1,7 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Executes the command line interface.
|
# Executes the command line interface.
|
||||||
|
|
||||||
# USAGE
|
|
||||||
# ./run.sh OPTION
|
|
||||||
|
|
||||||
# LIBRARY
|
|
||||||
source lib/installers.sh
|
source lib/installers.sh
|
||||||
source lib/options.sh
|
source lib/options.sh
|
||||||
source lib/reinstallers.sh
|
source lib/reinstallers.sh
|
||||||
@@ -28,7 +23,6 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
while true; do
|
while true; do
|
||||||
if [[ $# == 0 ]]; then
|
if [[ $# == 0 ]]; then
|
||||||
printf "\nUsage: run OPTION\n"
|
printf "\nUsage: run OPTION\n"
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Sets up and launches (if necessary) installed software.
|
# Sets up and launches (if necessary) installed software.
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/setup_software"
|
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/setup_software"
|
||||||
|
|
||||||
# EXECUTION
|
|
||||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||||
"$SCRIPT_PATH"
|
"$SCRIPT_PATH"
|
||||||
else
|
else
|
||||||
|
|||||||
40
circle.yml
40
circle.yml
@@ -3,7 +3,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
working_directory: ~/project
|
working_directory: ~/project
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/ruby:2.5
|
- image: circleci/ruby
|
||||||
environment:
|
environment:
|
||||||
BUNDLE_JOBS: 3
|
BUNDLE_JOBS: 3
|
||||||
BUNDLE_RETRY: 3
|
BUNDLE_RETRY: 3
|
||||||
@@ -12,19 +12,47 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Environment Setup
|
||||||
|
command: |
|
||||||
|
printf "%s\n" 'export CI_RUBY_VERSION=$(cat ".ruby-version" | tr -d "\n")' >> $BASH_ENV
|
||||||
|
|
||||||
- type: cache-restore
|
- type: cache-restore
|
||||||
name: Bundler Cache Restore
|
name: Ruby Restore
|
||||||
key: bundle-{{ checksum "Gemfile" }}
|
key: ruby-{{checksum ".ruby-version"}}
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Ruby Install
|
||||||
|
command: |
|
||||||
|
curl https://cache.ruby-lang.org/pub/ruby/${CI_RUBY_VERSION::-2}/ruby-$CI_RUBY_VERSION.tar.bz2 > ../ruby-$CI_RUBY_VERSION.tar.gz
|
||||||
|
cd ..
|
||||||
|
tar --extract --bzip2 --verbose --file ruby-$CI_RUBY_VERSION.tar.gz
|
||||||
|
cd ruby-$CI_RUBY_VERSION
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
make update-gems
|
||||||
|
make extract-gems
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
- type: cache-save
|
||||||
|
name: Ruby Store
|
||||||
|
key: ruby-{{checksum ".ruby-version"}}
|
||||||
|
paths:
|
||||||
|
- ../ruby-$CI_RUBY_VERSION
|
||||||
|
|
||||||
|
- type: cache-restore
|
||||||
|
name: Bundler Restore
|
||||||
|
key: bundler-{{checksum "Gemfile"}}
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Bundler Install
|
name: Bundler Install
|
||||||
command: |
|
command: |
|
||||||
gem update --system
|
gem update --system
|
||||||
bundle check || bundle install
|
bundle install --path vendor/bundle
|
||||||
|
|
||||||
- type: cache-save
|
- type: cache-save
|
||||||
name: Bundler Cache Store
|
name: Bundler Store
|
||||||
key: bundle-{{ checksum "Gemfile" }}
|
key: bundler-{{checksum "Gemfile"}}
|
||||||
paths:
|
paths:
|
||||||
- vendor/bundle
|
- vendor/bundle
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines software installer functions.
|
# Defines software installer functions.
|
||||||
|
|
||||||
# Installs an application via a DMG file.
|
# Installs an application via a DMG file.
|
||||||
@@ -10,11 +9,11 @@ install_dmg_app() {
|
|||||||
local mount_point="/Volumes/$2"
|
local mount_point="/Volumes/$2"
|
||||||
local app_name="$3"
|
local app_name="$3"
|
||||||
local install_path=$(get_install_path "$app_name")
|
local install_path=$(get_install_path "$app_name")
|
||||||
local download_file="download.dmg"
|
local work_file="download.dmg"
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
if [[ ! -e "$install_path" ]]; then
|
||||||
download_installer "$url" "$download_file"
|
download_file "$url" "$work_file"
|
||||||
mount_image "$MAC_OS_WORK_PATH/$download_file"
|
mount_image "$MAC_OS_WORK_PATH/$work_file"
|
||||||
install_app "$mount_point" "$app_name"
|
install_app "$mount_point" "$app_name"
|
||||||
unmount_image "$mount_point"
|
unmount_image "$mount_point"
|
||||||
verify_application "$app_name"
|
verify_application "$app_name"
|
||||||
@@ -29,11 +28,11 @@ install_dmg_pkg() {
|
|||||||
local mount_point="/Volumes/$2"
|
local mount_point="/Volumes/$2"
|
||||||
local app_name="$3"
|
local app_name="$3"
|
||||||
local install_path=$(get_install_path "$app_name")
|
local install_path=$(get_install_path "$app_name")
|
||||||
local download_file="download.dmg"
|
local work_file="download.dmg"
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
if [[ ! -e "$install_path" ]]; then
|
||||||
download_installer "$url" "$download_file"
|
download_file "$url" "$work_file"
|
||||||
mount_image "$MAC_OS_WORK_PATH/$download_file"
|
mount_image "$MAC_OS_WORK_PATH/$work_file"
|
||||||
install_pkg "$mount_point" "$app_name"
|
install_pkg "$mount_point" "$app_name"
|
||||||
unmount_image "$mount_point"
|
unmount_image "$mount_point"
|
||||||
printf "Installed: $app_name.\n"
|
printf "Installed: $app_name.\n"
|
||||||
@@ -48,15 +47,15 @@ install_zip_app() {
|
|||||||
local url="$1"
|
local url="$1"
|
||||||
local app_name="$2"
|
local app_name="$2"
|
||||||
local install_path=$(get_install_path "$app_name")
|
local install_path=$(get_install_path "$app_name")
|
||||||
local download_file="download.zip"
|
local work_file="download.zip"
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
if [[ ! -e "$install_path" ]]; then
|
||||||
download_installer "$url" "$download_file"
|
download_file "$url" "$work_file"
|
||||||
|
|
||||||
(
|
(
|
||||||
printf "Preparing...\n"
|
printf "Preparing...\n"
|
||||||
cd "$MAC_OS_WORK_PATH"
|
cd "$MAC_OS_WORK_PATH"
|
||||||
unzip -q "$download_file"
|
unzip -q "$work_file"
|
||||||
find . -type d -name "$app_name" -print -exec cp -pR {} . > /dev/null 2>&1 \;
|
find . -type d -name "$app_name" -print -exec cp -pR {} . > /dev/null 2>&1 \;
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -67,6 +66,30 @@ install_zip_app() {
|
|||||||
}
|
}
|
||||||
export -f install_zip_app
|
export -f install_zip_app
|
||||||
|
|
||||||
|
# Installs a package via a zip file.
|
||||||
|
# Parameters: $1 (required) - URL, $2 (required) - Application name.
|
||||||
|
install_zip_pkg() {
|
||||||
|
local url="$1"
|
||||||
|
local app_name="$2"
|
||||||
|
local install_path=$(get_install_path "$app_name")
|
||||||
|
local work_file="download.zip"
|
||||||
|
|
||||||
|
if [[ ! -e "$install_path" ]]; then
|
||||||
|
download_file "$url" "$work_file"
|
||||||
|
|
||||||
|
(
|
||||||
|
printf "Preparing...\n"
|
||||||
|
cd "$MAC_OS_WORK_PATH"
|
||||||
|
unzip -q "$work_file"
|
||||||
|
)
|
||||||
|
|
||||||
|
install_pkg "$MAC_OS_WORK_PATH" "$app_name"
|
||||||
|
printf "Installed: $app_name.\n"
|
||||||
|
verify_application "$app_name"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
export -f install_zip_pkg
|
||||||
|
|
||||||
# Installs an application via a tar file.
|
# Installs an application via a tar file.
|
||||||
# Parameters: $1 (required) - URL, $2 (required) - Application name, $3 (required) - Decompress options.
|
# Parameters: $1 (required) - URL, $2 (required) - Application name, $3 (required) - Decompress options.
|
||||||
install_tar_app() {
|
install_tar_app() {
|
||||||
@@ -74,15 +97,15 @@ install_tar_app() {
|
|||||||
local app_name="$2"
|
local app_name="$2"
|
||||||
local options="$3"
|
local options="$3"
|
||||||
local install_path=$(get_install_path "$app_name")
|
local install_path=$(get_install_path "$app_name")
|
||||||
local download_file="download.tar"
|
local work_file="download.tar"
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
if [[ ! -e "$install_path" ]]; then
|
||||||
download_installer "$url" "$download_file"
|
download_file "$url" "$work_file"
|
||||||
|
|
||||||
(
|
(
|
||||||
printf "Preparing...\n"
|
printf "Preparing...\n"
|
||||||
cd "$MAC_OS_WORK_PATH"
|
cd "$MAC_OS_WORK_PATH"
|
||||||
tar "$options" "$download_file"
|
tar "$options" "$work_file"
|
||||||
)
|
)
|
||||||
|
|
||||||
install_app "$MAC_OS_WORK_PATH" "$app_name"
|
install_app "$MAC_OS_WORK_PATH" "$app_name"
|
||||||
@@ -92,29 +115,23 @@ install_tar_app() {
|
|||||||
}
|
}
|
||||||
export -f install_tar_app
|
export -f install_tar_app
|
||||||
|
|
||||||
# Installs a package via a zip file.
|
# Installs program (single file).
|
||||||
# Parameters: $1 (required) - URL, $2 (required) - Application name.
|
# Parameters: $1 (required) - URL, $2 (required) - Program name.
|
||||||
install_zip_pkg() {
|
install_program() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
local app_name="$2"
|
local program_name="$2"
|
||||||
local install_path=$(get_install_path "$app_name")
|
local install_path=$(get_install_path "$program_name")
|
||||||
local download_file="download.zip"
|
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
if [[ ! -e "$install_path" ]]; then
|
||||||
download_installer "$url" "$download_file"
|
printf "Installing: $install_path...\n"
|
||||||
|
download_file "$url" "$program_name"
|
||||||
(
|
mv "$MAC_OS_WORK_PATH/$program_name" "$install_path"
|
||||||
printf "Preparing...\n"
|
chmod 755 "$install_path"
|
||||||
cd "$MAC_OS_WORK_PATH"
|
printf "Installed: $program_name.\n"
|
||||||
unzip -q "$download_file"
|
verify_application "$program_name"
|
||||||
)
|
|
||||||
|
|
||||||
install_pkg "$MAC_OS_WORK_PATH" "$app_name"
|
|
||||||
printf "Installed: $app_name.\n"
|
|
||||||
verify_application "$app_name"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
export -f install_zip_pkg
|
export -f install_program
|
||||||
|
|
||||||
# Installs application code from a Git repository.
|
# Installs application code from a Git repository.
|
||||||
# Parameters: $1 (required) - Repository URL, $2 (required) - Install path, $3 (optional) - Git clone options.
|
# Parameters: $1 (required) - Repository URL, $2 (required) - Install path, $3 (optional) - Git clone options.
|
||||||
@@ -155,9 +172,9 @@ install_git_project() {
|
|||||||
}
|
}
|
||||||
export -f install_git_project
|
export -f install_git_project
|
||||||
|
|
||||||
# Downloads an installer to local disk.
|
# Downloads remote file to local disk.
|
||||||
# Parameters: $1 (required) - URL, $2 (required) - File name, $3 (required) - HTTP header.
|
# Parameters: $1 (required) - URL, $2 (required) - File name, $3 (optional) - HTTP header.
|
||||||
download_installer() {
|
download_file() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
local file_name="$2"
|
local file_name="$2"
|
||||||
local http_header="$3"
|
local http_header="$3"
|
||||||
@@ -167,38 +184,7 @@ download_installer() {
|
|||||||
mkdir $MAC_OS_WORK_PATH
|
mkdir $MAC_OS_WORK_PATH
|
||||||
curl --header "$http_header" --location --retry 3 --retry-delay 5 --fail --silent --show-error "$url" >> "$MAC_OS_WORK_PATH/$file_name"
|
curl --header "$http_header" --location --retry 3 --retry-delay 5 --fail --silent --show-error "$url" >> "$MAC_OS_WORK_PATH/$file_name"
|
||||||
}
|
}
|
||||||
export -f download_installer
|
export -f download_file
|
||||||
|
|
||||||
# Downloads an installer to the $HOME/Downloads folder for manual use.
|
|
||||||
# Parameters: $1 (required) - URL, $2 (required) - File name.
|
|
||||||
download_only() {
|
|
||||||
if [[ -e "$HOME/Downloads/$2" ]]; then
|
|
||||||
printf "Downloaded: $2.\n"
|
|
||||||
else
|
|
||||||
printf "Downloading $1...\n"
|
|
||||||
download_installer "$1" "$2"
|
|
||||||
mv "$MAC_OS_WORK_PATH/$2" "$HOME/Downloads"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
export -f download_only
|
|
||||||
|
|
||||||
# Installs a single file.
|
|
||||||
# Parameters: $1 (required) - URL, $2 (required) - Install path.
|
|
||||||
install_file() {
|
|
||||||
local file_url="$1"
|
|
||||||
local file_name=$(get_file_name "$1")
|
|
||||||
local install_path="$2"
|
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
|
||||||
printf "Installing: $install_path...\n"
|
|
||||||
download_installer "$file_url" "$file_name"
|
|
||||||
mkdir -p $(dirname "$install_path")
|
|
||||||
mv "$MAC_OS_WORK_PATH/$file_name" "$install_path"
|
|
||||||
printf "Installed: $file_name.\n"
|
|
||||||
verify_path "$install_path"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
export -f install_file
|
|
||||||
|
|
||||||
# Installs an application.
|
# Installs an application.
|
||||||
# Parameters: $1 (required) - Application source path, $2 (required) - Application name.
|
# Parameters: $1 (required) - Application source path, $2 (required) - Application name.
|
||||||
@@ -209,6 +195,8 @@ install_app() {
|
|||||||
printf "Installing: $install_root/$2...\n"
|
printf "Installing: $install_root/$2...\n"
|
||||||
|
|
||||||
case $file_extension in
|
case $file_extension in
|
||||||
|
'')
|
||||||
|
cp -a "$1/$2" "$install_root";;
|
||||||
'app')
|
'app')
|
||||||
cp -a "$1/$2" "$install_root";;
|
cp -a "$1/$2" "$install_root";;
|
||||||
'prefPane')
|
'prefPane')
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines command line prompt options.
|
# Defines command line prompt options.
|
||||||
|
|
||||||
# Process option selection.
|
# Process option selection.
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines reinstall functions.
|
# Defines reinstall functions.
|
||||||
|
|
||||||
# Reinstall application.
|
# Reinstall application.
|
||||||
|
|||||||
@@ -1,21 +1,11 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines global settings.
|
|
||||||
|
|
||||||
# SETTINGS
|
|
||||||
# General
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
# Globals
|
|
||||||
export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia"
|
export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS Mojave.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"
|
||||||
|
|
||||||
# Java
|
|
||||||
export JAVA_LABEL="Java SE Development Kit"
|
|
||||||
export JAVA_DOWNLOAD_URL="https://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html"
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines uninstall functions.
|
# Defines uninstall functions.
|
||||||
|
|
||||||
# Uninstalls selected application.
|
# Uninstalls selected application.
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines general utility functions.
|
# Defines general utility functions.
|
||||||
|
|
||||||
# Answers the full install path (including file name) for file name.
|
# Answers the full install path (including file name) for file name.
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
# Defines verification/validation functions.
|
# Defines verification/validation functions.
|
||||||
|
|
||||||
# Checks for missing Homebrew formulas.
|
# Checks for missing Homebrew formulas.
|
||||||
|
|||||||
Reference in New Issue
Block a user