Compare commits

...

38 Commits
1.1.0 ... 3.1.0

Author SHA1 Message Date
Brooke Kuhlmann
68c1ea0515 Added version release changes. 2017-11-26 15:26:28 -07:00
Brooke Kuhlmann
419fceba0c Updated boot disk documenation to mention APFS.
Aids new installs with the correct option to choose from the menu
prompt.
2017-11-26 08:59:06 -07:00
Brooke Kuhlmann
9fba750712 Updated to Rake 12.3.0.
[Changes](http://bit.ly/2AU14wd).
2017-11-18 08:53:59 -07:00
Brooke Kuhlmann
de9e9dc73e Updated Gemfile.lock file.
Was accidentally missed as part of the previous commit.
2017-11-05 17:12:04 -07:00
Brooke Kuhlmann
0f13af9692 Updated to Git Cop 1.7.0.
[Changes](http://bit.ly/2AcYDV4).
2017-11-05 17:04:03 -07:00
Brooke Kuhlmann
7133361277 Updated to Bundler 1.16.0.
[Changes](http://bit.ly/2hFrBX5).
2017-11-04 13:53:22 -06:00
Brooke Kuhlmann
bc01beac6a Updated to Rubocop 0.51.0.
[Changes](http://bit.ly/2hlepWS).

There is a bug with Rubocop 0.51.0 where the `Style/CommentedKeyword`
cop raises false positives but can be ignored until the next release of
Rubocop is issued.
2017-10-29 15:08:27 -06:00
Brooke Kuhlmann
18ff862a4a Added version release changes. 2017-10-01 15:42:33 -06:00
Brooke Kuhlmann
c6ef97a88b Updated boot disk creation to use macOS High Sierra.
Necessary to create a boot disk for the latest macOS version.
2017-10-01 11:40:24 -06:00
Brooke Kuhlmann
67a17a0113 Updated to Ruby 2.4.2.
[Details](http://bit.ly/2yfBm4I).
2017-09-16 17:34:04 -06:00
Brooke Kuhlmann
e5f2051412 Updated to Git Cop 1.6.0.
[Changes](https://github.com/bkuhlmann/git-cop/releases/tag/v1.6.0).
2017-08-27 08:49:41 -06:00
Brooke Kuhlmann
bbdedb1a56 Updated gem dependencies. 2017-08-27 08:07:13 -06:00
Brooke Kuhlmann
cd595f1bd1 Fixed table of contents.
[ci skip]
2017-08-03 20:03:41 -06:00
Brooke Kuhlmann
e89a05fcbf Updated to Git Cop 1.5.0.
[Changes](https://github.com/bkuhlmann/git-cop/releases/tag/v1.5.0).
2017-07-30 16:03:20 -06:00
Brooke Kuhlmann
048908f2ba Updated to Git Cop 1.3.0.
- [Changes](https://github.com/bkuhlmann/git-cop/releases/tag/v1.3.0).
2017-07-17 20:15:58 -06:00
Brooke Kuhlmann
cc23f2d634 Added version release changes. 2017-07-16 16:13:10 -06:00
Brooke Kuhlmann
4d85b3353f Updated gem dependencies. 2017-07-10 20:55:04 -06:00
Brooke Kuhlmann
a757ed1210 Updated GitHub templates.
- Simplified more of the process.
- Reduced what is required/optional.
- Clarified the help comments.

[ci skip]
2017-06-28 20:26:57 -06:00
Brooke Kuhlmann
2994653972 Updated CONTRIBUTING documentation.
- With code quality tools in place to automate most requirements, the
  documentation doesn't need to be as verbose.
- The documentation has been reduced to the core essentials which means
  there is less to read and no more links to follow.

[ci skip]
2017-06-25 06:45:26 -06:00
Brooke Kuhlmann
6716e687d1 Updated gem dependencies. 2017-06-24 11:58:03 -06:00
Brooke Kuhlmann
18dccd7773 Added Git Cop support.
- Ensures Git commits are consistent.
- [Details](https://github.com/bkuhlmann/git-cop).
2017-06-18 16:05:53 -06:00
Brooke Kuhlmann
88494e2ed3 Updated README headers.
- Reserve H1's for project label and H2's for top-levels for the rest
  of the document.

[ci skip]
2017-06-18 14:15:34 -06:00
Brooke Kuhlmann
87e84a658f Added version release changes. 2017-04-29 07:52:54 -06:00
Brooke Kuhlmann
949a6b9d1e Fixed Java SE Development Kit install.
- Oracle makes it difficult to download the Java SE Development Kit as
  an offline download because the license must be accepted first. The
  JDK is important to have installed as several Homebrew apps require
  it to exist first.
- This provides a prompt for checking that the Java SE Development Kit
  has been installed before proceeding as the original way of
  installing it assumed you had visited the Oracle web site and
  accepted the license.
2017-04-29 07:44:50 -06:00
Sam Wolfson
3b6137ec36 Fix install-all command
The install-all command does not reflect that the `bin/install_homebrew` file was split into `bin/install_homebrew_formulas` and `bin/install_homebrew_casks`, and therefore fails to install.
2017-04-29 06:55:32 -06:00
Brooke Kuhlmann
e1bc7e939a Added version release changes. 2017-04-09 15:51:59 -06:00
Brooke Kuhlmann
8bf0ef473d Added Homebrew Casks install script.
- Provides support for installing Homebrew Casks.
2017-02-17 19:27:37 -07:00
Brooke Kuhlmann
79f7103179 Refactored Homebrew software as Homebrew Formulas.
- Allows for expansion of additional Homebrew software in the future
  (i.e. taps, bottles, casks, etc.)
2017-02-17 19:18:02 -07:00
Brooke Kuhlmann
38fa30a028 Updated README semantic versioning order.
- It's easier to think about versions in the order of major, minor,
  and maintenance.

[ci skip]
2017-02-07 07:20:00 -07:00
Brooke Kuhlmann
a2a2820098 Updated contributing documentation.
- Simplified the documentation to be more succinct in what is required
  (especially in terms of the Style Guides and GitHub pull request and
  issue template).

[ci skip]
2017-02-05 11:26:54 -07:00
Brooke Kuhlmann
3a896882c9 Added version release changes. 2017-01-08 10:23:13 -07:00
Brooke Kuhlmann
8af0c44eba Fixed install of zip app downloads with sub-directories.
- Discovered some applications, packaged in zip file format, would
  extract to a sub-directory. This was problematic because all zip app
  installs previously assumed the app would be unzipped in the current
  directory. This fixes that situation where an app might be located in
  a sub-directory or several sub-directory deep.
- The easiest fix for this problem would have been to the `-j` option
  for *junk* paths via unzip: "The archive's directory structure is not
  recreated; all files are deposited in the extraction directory (by
  default, the current one)." ...but some zip files, when unzipped, run
  executable code that creates the sub-directory structure dynamically
  which makes the `-j` option not viable.
- The solution used to fix this problem uses `find` to determine if the
  application to install is in a sub-directory. If so, then the app is
  copied to the root folder (i.e. $MAC_OS_WORK_PATH) so the script can
  install as it has done in the past. Because the file copy is executed
  only if `find` finds something, this makes the copy optional for sub-
  directories and is a no-op for standard zip files with no sub-
  directories.

Discovered that some zip app downloads use executable scripts to
  build for the particular machine when unzipped.

http://earthlingsoft.net/UnicodeChecker/index.html
2017-01-08 10:12:20 -07:00
Brooke Kuhlmann
d9440953ac Added version release changes. 2017-01-01 15:22:20 -07:00
Brooke Kuhlmann
8528e0ff01 Removed CHANGELOG.md (use CHANGES.md instead).
- Simplifies the name since "Log" is implied and is one of the three
  common file names for this type of information: CHANGELOG.md,
  CHANGES.md, and HISTORY.md

[ci skip]
2016-10-18 14:23:38 -06:00
Brooke Kuhlmann
7db6835173 Updated README versioning documentation.
[ci skip]
2016-10-16 11:44:39 -06:00
Brooke Kuhlmann
7fc9304834 Added version release changes. 2016-10-12 11:44:48 -06:00
Brooke Kuhlmann
b6e9f38bac Added screencast to README.
- Provides additional usage via the CLI.
2016-10-12 11:42:11 -06:00
Brooke Kuhlmann
3320a8d027 Fixed reinstaller path issues with application and extension scripts.
- These reinstallers were not making use of the new `bin` scripts.
2016-10-12 11:28:48 -06:00
21 changed files with 275 additions and 152 deletions

View File

@@ -1,16 +1,11 @@
## Expected Behavior ## Overview
<!-- Required. Describe, in detail, the behavior experienced. --> <!-- Required. Describe, in detail, the behavior experienced and what is desired. -->
## Actual Behavior
<!-- Required. Describe, in detail, what should be the correct behavior. -->
## Steps to Recreate ## Steps to Recreate
<!-- Required. List the exact steps to the reproduce errant behavior. --> <!-- Optional. List exact steps (numbered list) to reproduce errant behavior. Delete if unused. -->
0. ## Screenshots/Screencasts
<!-- Optional. Attach screenshot/screencast(s) that demo the behavior. Delete if unused. -->
## Environment ## Environment
<!-- Optional. What is your operating system, software version(s), etc. Delete if unused. --> <!-- Optional. What is your operating system, software version(s), etc. Delete if unused. -->
## Screenshots/Screencasts
<!-- Optional. Attach screenshots/screencasts that demo the behavior. Delete if unused. -->

View File

@@ -2,10 +2,10 @@
<!-- Required. Why is this important/necessary? --> <!-- Required. Why is this important/necessary? -->
## Details ## Details
<!-- Optional. List the key features/highlights as bullet points. --> <!-- Optional. List the key features/highlights as bullet points. Delete if unused. -->
## Notes ## Notes
<!-- Optional. List additional notes/references as bullet points. Delete if unused. --> <!-- Optional. List additional notes/references as bullet points. Delete if unused. -->
## Screenshots/Screencasts ## Screenshots/Screencasts
<!-- Optional. Provide image/video support. Delete if unused. --> <!-- Optional. Provide supporting image/video. Delete if unused. -->

1
.ruby-version Normal file
View File

@@ -0,0 +1 @@
2.4.2

View File

@@ -1,11 +0,0 @@
# v1.1.0 (2016-10-11)
- Fixed Bash script header to dynamically load correct environment.
- Fixed verification of Homebrew application installs.
- Added script hook for App Store software install.
- Added script hooks for unfinished custom configurations.
- Updated and clarified README documentation.
# v1.0.0 (2016-10-05)
- Initial version.

62
CHANGES.md Normal file
View File

@@ -0,0 +1,62 @@
# v3.1.0 (2017-11-26)
- Updated Gemfile.lock file.
- Updated boot disk documenation to mention APFS.
- Updated to Bundler 1.16.0.
- Updated to Git Cop 1.7.0.
- Updated to Rake 12.3.0.
- Updated to Rubocop 0.51.0.
# v3.0.0 (2017-10-01)
- Fixed table of contents.
- Updated boot disk creation to use macOS High Sierra.
- Updated gem dependencies.
- Updated to Git Cop 1.6.0.
- Updated to Ruby 2.4.2.
# v2.2.0 (2017-07-16)
- Added Git Cop support.
- Updated CONTRIBUTING documentation.
- Updated GitHub templates.
- Updated README headers.
- Updated gem dependencies.
# v2.1.0 (2017-04-29)
- Fixed Java SE Development Kit install.
- Fixed install-all command
# v2.0.0 (2017-04-09)
- Added Homebrew Casks install script.
- Updated README semantic versioning order.
- Updated contributing documentation.
- Refactored Homebrew software as Homebrew Formulas.
# v1.3.1 (2017-01-08)
- Fixed install of zip app downloads with sub-directories.
# v1.3.0 (2017-01-01)
- Updated README versioning documentation.
- Removed CHANGELOG.md (use CHANGES.md instead).
# v1.2.0 (2016-10-12)
- Fixed reinstaller path issues with application and extension scripts.
- Added screencast to README.
# v1.1.0 (2016-10-11)
- Fixed Bash script header to dynamically load correct environment.
- Fixed verification of Homebrew application installs.
- Added script hook for App Store software install.
- Added script hooks for unfinished custom configurations.
- Updated and clarified README documentation.
# v1.0.0 (2016-10-05)
- Initial version.

View File

@@ -1,35 +1,22 @@
# Overview # Contributing
Thanks for taking an interest in this open source project. Your support and involvement is greatly appreciated. The Thanks for taking an interest in this open source project. Your support and involvement is greatly
following details what you need to know in order to contribute. appreciated. The following sections detail what you need to know in order to contribute.
# Requirements ## Code
- Follow these [Basic Programming Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/basic.md). 0. Read the project README before starting.
- Follow these [Code Review Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/code_reviews.md). 0. Fork the `master` branch of this repository and clone the fork locally.
- Follow these [Git Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/git.md). 0. Ensure there are no setup, usage, and/or test issues.
- Follow these [Bash Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/languages/bash.md). 0. Add tests for new functionality and ensure they pass.
- Follow these [CSS Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/languages/css.md). 0. Submit a pull request, follow the instructions it provides, and ensure the build passes.
- Follow these [Ruby Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/languages/ruby/ruby.md).
# Contributing Code ## Issues
0. Read the project README thoroughly before starting. 0. Submit an issue via the GitHub Issues tab (assuming one does not
0. Fork the master branch of the repository. already exist) and follow the instructions it provides.
0. Ensure there are no setup, usage, and/or test issues (again, follow the README).
0. Add tests for new functionality (refactoring and documentation changes can be excluded).
0. Ensure all tests pass.
0. Push your feature branch and submit a pull request.
# Submitting Issues ## Feedback
0. Submit an issue via the GitHub Issues tab (assuming one does not already exist). - Expect a response within one to three business days.
0. Clearly describe the issue (including steps to reproduce). - Changes, alternatives, and/or improvements might be suggested upon review.
0. Specify your enviroment setup (OS, browser, language, etc. with version info).
0. Provide a stack dump (if possible).
0. Explain any additional details that might help diagnose the problem quickly.
# Feedback
Expect a response within one to three business days.
Changes, alternatives, and/or improvements might be suggested upon review.

6
Gemfile Normal file
View File

@@ -0,0 +1,6 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "rake", "~> 12.0"
gem "git-cop", "~> 1.7"

28
Gemfile.lock Normal file
View File

@@ -0,0 +1,28 @@
GEM
remote: https://rubygems.org/
specs:
equatable (0.5.0)
git-cop (1.7.1)
pastel (~> 0.7)
refinements (~> 4.2)
runcom (~> 1.3)
thor (~> 0.20)
pastel (0.7.2)
equatable (~> 0.5.0)
tty-color (~> 0.4.0)
rake (12.3.0)
refinements (4.3.0)
runcom (1.4.0)
refinements (~> 4.2)
thor (0.20.0)
tty-color (0.4.2)
PLATFORMS
ruby
DEPENDENCIES
git-cop (~> 1.7)
rake (~> 12.0)
BUNDLED WITH
1.16.0

View File

@@ -1,5 +1,6 @@
# macOS # macOS
[![Circle CI Status](https://circleci.com/gh/bkuhlmann/mac_os.svg?style=svg)](https://circleci.com/gh/bkuhlmann/mac_os)
[![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/bkuhlmann) [![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/bkuhlmann)
Shell scripts for automated macOS machine setup. Shell scripts for automated macOS machine setup.
@@ -19,23 +20,24 @@ the two projects are meant to be used:
<!-- Tocer[start]: Auto-generated, don't remove. --> <!-- Tocer[start]: Auto-generated, don't remove. -->
# Table of Contents ## Table of Contents
- [Features](#features) - [Features](#features)
- [Requirements](#requirements) - [Screencast](#screencast)
- [Setup](#setup) - [Requirements](#requirements)
- [Usage](#usage) - [Setup](#setup)
- [Usage](#usage)
- [Customization](#customization) - [Customization](#customization)
- [Versioning](#versioning) - [Versioning](#versioning)
- [Code of Conduct](#code-of-conduct) - [Code of Conduct](#code-of-conduct)
- [Contributions](#contributions) - [Contributions](#contributions)
- [License](#license) - [License](#license)
- [History](#history) - [History](#history)
- [Credits](#credits) - [Credits](#credits)
<!-- Tocer[finish]: Auto-generated, don't remove. --> <!-- Tocer[finish]: Auto-generated, don't remove. -->
# Features ## Features
- 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.
@@ -44,7 +46,8 @@ the two projects are meant to be used:
- Downloads and installs development tools (required by Homebrew): - Downloads and installs development tools (required by Homebrew):
- [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) - [Java SE Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
- Downloads, installs, and configures [Homebrew](http://brew.sh) command line software. - Downloads, installs, and configures [Homebrew Formulas](http://brew.sh).
- Downloads, installs, and configures [Homebrew Casks](https://caskroom.github.io).
- Downloads, installs, and configures - Downloads, installs, and configures
[App Store](http://www.apple.com/macosx/whats-new/app-store.html) software. [App Store](http://www.apple.com/macosx/whats-new/app-store.html) software.
- Downloads, installs, and configures non-App Store software applications. - Downloads, installs, and configures non-App Store software applications.
@@ -53,12 +56,16 @@ the two projects are meant to be used:
- Sets up and configures installed software for use. - Sets up and configures installed software for use.
- Supports restoration of machine backups. - Supports restoration of machine backups.
# Requirements ## Screencast
0. [macOS Sierra](https://www.apple.com/macos) (with latest software updates applied) [![asciicast](https://asciinema.org/a/88971.png)](https://asciinema.org/a/88971)
## Requirements
0. [macOS High Sierra](https://www.apple.com/macos) (with latest software updates applied)
0. [Xcode](https://developer.apple.com/xcode) (with accepted license agreement) 0. [Xcode](https://developer.apple.com/xcode) (with accepted license agreement)
# Setup ## Setup
Open a terminal window and execute one of the following setup sequences depending on your version Open a terminal window and execute one of the following setup sequences depending on your version
preference: preference:
@@ -67,14 +74,14 @@ 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 v1.1.0 git checkout v3.1.0
Master Version (unstable): Master Version (unstable):
git clone https://github.com/bkuhlmann/mac_os.git git clone https://github.com/bkuhlmann/mac_os.git
cd mac_os cd mac_os
# Usage ## Usage
Run the following script: Run the following script:
@@ -87,7 +94,8 @@ You will be presented with the following options:
Install: Install:
b: Apply basic settings. b: Apply basic settings.
t: Install development tools. t: Install development tools.
h: Install Homebrew software. hf: Install Homebrew Formulas.
hc: Install Homebrew Casks.
m: Install Mac App Store software. m: Install Mac App Store software.
a: Install application software. a: Install application software.
x: Install application software extensions. x: Install application software extensions.
@@ -119,7 +127,7 @@ 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.
## Customization ### Customization
All executable scripts can be found in the `bin` folder: All executable scripts can be found in the `bin` folder:
@@ -135,7 +143,8 @@ All executable scripts can be found in the `bin` folder:
- `bin/install_dev_tools`: Installs macOS development tools required by Homebrew. - `bin/install_dev_tools`: Installs macOS development tools required by Homebrew.
- `bin/install_extensions`: Installs macOS application extensions and add-ons. *This is meant to be - `bin/install_extensions`: Installs macOS application extensions and add-ons. *This is meant to be
customized.* customized.*
- `bin/install_homebrew`: Installs Homebrew managed software. *This is meant to be customized.* - `bin/install_homebrew_casks`: Installs Homebrew Formulas. *This is meant to be customized.*
- `bin/install_homebrew_formulas`: Installs Homebrew Casks. *This is meant to be customized.*
- `bin/restore_backup`: Restores system/application settings from backup image. *This is meant to be - `bin/restore_backup`: Restores system/application settings from backup image. *This is meant to be
customized.* customized.*
- `bin/run`: The main script and interface for macOS setup. - `bin/run`: The main script and interface for macOS setup.
@@ -149,34 +158,34 @@ 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.
# Versioning ## Versioning
Read [Semantic Versioning](http://semver.org) for details. Briefly, it means: Read [Semantic Versioning](http://semver.org) for details. Briefly, it means:
- Patch (x.y.Z) - Incremented for small, backwards compatible bug fixes.
- Minor (x.Y.z) - Incremented for new, backwards compatible public API enhancements and/or bug fixes.
- Major (X.y.z) - Incremented for any backwards incompatible public API changes. - Major (X.y.z) - Incremented for any backwards incompatible public API changes.
- Minor (x.Y.z) - Incremented for new, backwards compatible, public API enhancements/fixes.
- Patch (x.y.Z) - Incremented for small, backwards compatible, bug fixes.
# Code of Conduct ## Code of Conduct
Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By
participating in this project you agree to abide by its terms. participating in this project you agree to abide by its terms.
# Contributions ## Contributions
Read [CONTRIBUTING](CONTRIBUTING.md) for details. Read [CONTRIBUTING](CONTRIBUTING.md) for details.
# License ## License
Copyright (c) 2016 [Alchemists](https://www.alchemists.io). Copyright (c) 2016 [Alchemists](https://www.alchemists.io).
Read the [LICENSE](LICENSE.md) for details. Read [LICENSE](LICENSE.md) for details.
# History ## History
Read the [CHANGELOG](CHANGELOG.md) for details. Read [CHANGES](CHANGES.md) for details.
Built with [Bashsmith](https://github.com/bkuhlmann/bashsmith). Built with [Bashsmith](https://github.com/bkuhlmann/bashsmith).
# Credits ## Credits
Developed by [Brooke Kuhlmann](https://www.alchemists.io) at Developed by [Brooke Kuhlmann](https://www.alchemists.io) at
[Alchemists](https://www.alchemists.io). [Alchemists](https://www.alchemists.io).

9
Rakefile Normal file
View File

@@ -0,0 +1,9 @@
# frozen_string_literal: true
begin
require "git/cop/rake/setup"
rescue LoadError => error
puts error.message
end
task default: :git_cop

View File

@@ -12,7 +12,7 @@ printf " 1. Insert the USB boot disk into the machine to be upgraded.\n"
printf " 2. Reboot the machine.\n" printf " 2. Reboot the machine.\n"
printf " 3. Hold down the OPTION key before the Apple logo appears.\n" printf " 3. Hold down the OPTION key before the Apple logo appears.\n"
printf " 4. Select the USB boot disk from the menu.\n" printf " 4. Select the USB boot disk from the menu.\n"
printf " 5. Format the machine's internal drive using Disk Utility.\n" printf " 5. Format the machine's internal drive using Disk Utility (choose APFS).\n"
printf " 6. Install the new operating system.\n" printf " 6. Install the new operating system.\n"
printf "\nmacOS Reinstall:\n" printf "\nmacOS Reinstall:\n"
printf " 1. Click the Apple icon from the operating system main menu.\n" printf " 1. Click the Apple icon from the operating system main menu.\n"

View File

@@ -6,11 +6,18 @@
printf "Installing Xcode CLI tools...\n" printf "Installing Xcode CLI tools...\n"
xcode-select --install xcode-select --install
read -p "Have you completed the Xcode CLI tools install (y/n)? " response read -p "Have you completed the Xcode CLI tools install (y/n)? " xcode_response
if [[ "$response" != "y" ]]; then 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...\n" printf "Installing $JAVA_LABEL...\n"
install_java "$JAVA_URL" "$JAVA_VOLUME_NAME" 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

View File

@@ -1,18 +0,0 @@
#! /usr/bin/env bash
# DESCRIPTION
# Installs Homebrew software.
# SETTINGS
set -o nounset
set -o errexit
set -o pipefail
IFS=$'\n\t'
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew"
# EXECUTION
if [[ -x "$SCRIPT_PATH" ]]; then
"$SCRIPT_PATH"
else
printf "WARNING: Homebrew install script does not exist or is not executable.\n"
fi

18
bin/install_homebrew_casks Executable file
View File

@@ -0,0 +1,18 @@
#! /usr/bin/env bash
# DESCRIPTION
# Installs Homebrew Cask software.
# SETTINGS
set -o nounset
set -o errexit
set -o pipefail
IFS=$'\n\t'
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew_casks"
# EXECUTION
if [[ -x "$SCRIPT_PATH" ]]; then
"$SCRIPT_PATH"
else
printf "WARNING: Homebrew Casks install script does not exist or is not executable.\n"
fi

18
bin/install_homebrew_formulas Executable file
View File

@@ -0,0 +1,18 @@
#! /usr/bin/env bash
# DESCRIPTION
# Installs Homebrew Formula software.
# SETTINGS
set -o nounset
set -o errexit
set -o pipefail
IFS=$'\n\t'
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_homebrew_formulas"
# EXECUTION
if [[ -x "$SCRIPT_PATH" ]]; then
"$SCRIPT_PATH"
else
printf "WARNING: Homebrew Formulas install script does not exist or is not executable.\n"
fi

View File

@@ -39,7 +39,8 @@ while true; do
printf " Install:\n" printf " Install:\n"
printf " b: Apply basic settings.\n" printf " b: Apply basic settings.\n"
printf " t: Install development tools.\n" printf " t: Install development tools.\n"
printf " h: Install Homebrew software.\n" printf " hf: Install Homebrew Formulas.\n"
printf " hc: Install Homebrew Casks.\n"
printf " m: Install Mac App Store software.\n" printf " m: Install Mac App Store software.\n"
printf " a: Install application software.\n" printf " a: Install application software.\n"
printf " x: Install application software extensions.\n" printf " x: Install application software extensions.\n"

7
circle.yml Normal file
View File

@@ -0,0 +1,7 @@
dependencies:
pre:
- gem update --system
- gem update bundler
test:
override:
- bundle exec rake

View File

@@ -191,6 +191,7 @@ install_zip_app() {
printf "Preparing...\n" printf "Preparing...\n"
cd "$MAC_OS_WORK_PATH" cd "$MAC_OS_WORK_PATH"
unzip -q "$download_file" unzip -q "$download_file"
find . -type d -name "$app_name" -print -exec cp -pR {} . > /dev/null 2>&1 \;
) )
install_app "$MAC_OS_WORK_PATH" "$app_name" install_app "$MAC_OS_WORK_PATH" "$app_name"

View File

@@ -14,8 +14,10 @@ process_option() {
bin/apply_basic_settings;; bin/apply_basic_settings;;
't') 't')
bin/install_dev_tools;; bin/install_dev_tools;;
'h') 'hf')
bin/install_homebrew;; bin/install_homebrew_formulas;;
'hc')
bin/install_homebrew_casks;;
'm') 'm')
bin/install_app_store;; bin/install_app_store;;
'a') 'a')
@@ -30,7 +32,8 @@ process_option() {
caffeinate_machine caffeinate_machine
bin/apply_basic_settings bin/apply_basic_settings
bin/install_dev_tools bin/install_dev_tools
bin/install_homebrew bin/install_homebrew_formulas
bin/install_homebrew_casks
bin/install_app_store bin/install_app_store
bin/install_applications bin/install_applications
bin/install_extensions bin/install_extensions

View File

@@ -6,13 +6,13 @@
# Reinstall application. # Reinstall application.
reinstall_application() { reinstall_application() {
uninstall_application uninstall_application
scripts/applications.sh bin/install_applications
} }
export -f reinstall_application export -f reinstall_application
# Reinstall extension. # Reinstall extension.
reinstall_extension() { reinstall_extension() {
uninstall_extension uninstall_extension
scripts/extensions.sh bin/install_extensions
} }
export -f reinstall_extension export -f reinstall_extension

View File

@@ -11,12 +11,12 @@ set -o pipefail
IFS=$'\n\t' IFS=$'\n\t'
# Globals # Globals
export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS Sierra.app/Contents/Resources/createinstallmedia" export MAC_OS_BOOT_DISK_CREATOR="/Applications/Install macOS High Sierra.app/Contents/Resources/createinstallmedia"
export MAC_OS_BOOT_DISK_PATH="/Volumes/Untitled" export MAC_OS_BOOT_DISK_PATH="/Volumes/Untitled"
export MAC_OS_INSTALLER_PATH="/Applications/Install macOS Sierra.app" export MAC_OS_INSTALLER_PATH="/Applications/Install macOS High Sierra.app"
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 # Java
export JAVA_VOLUME_NAME="JDK 8 Update 101" export JAVA_LABEL="Java SE Development Kit"
export JAVA_URL="http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-macosx-x64.dmg" export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html"