Compare commits

..

10 Commits
1.2.0 ... 2.0.0

Author SHA1 Message Date
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
9 changed files with 116 additions and 83 deletions

View File

@@ -1,3 +1,19 @@
# 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.

View File

@@ -1,33 +1,25 @@
# Overview
Thanks for taking an interest in this open source project. Your support and involvement is greatly appreciated. The
following details what you need to know in order to contribute.
Thanks for taking an interest in this open source project. Your support and involvement is greatly
appreciated. The following details what you need to know in order to contribute.
# Requirements
- Follow these [Basic Programming Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/basic.md).
- Follow these [Code Review Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/code_reviews.md).
- Follow these [Git Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/git.md).
- Follow these [Bash Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/languages/bash.md).
- Follow these [CSS Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/languages/css.md).
- Follow these [Ruby Styles](https://github.com/bkuhlmann/style_guides/blob/master/programming/languages/ruby/ruby.md).
Read through the [Programming Style
Guides](https://github.com/bkuhlmann/style_guides/tree/master/programming).
# Contributing Code
0. Read the project README thoroughly before starting.
0. Fork the master branch of the repository.
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.
0. Read the project README before starting.
0. Fork the `master` branch of the repository.
0. Ensure there are no setup, usage, and/or test issues (see README for details).
0. Add tests for new functionality and ensure they pass.
0. Submit a pull request and follow the instructions it provides.
# Submitting Issues
0. Submit an issue via the GitHub Issues tab (assuming one does not already exist).
0. Clearly describe the issue (including steps to reproduce).
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.
0. Follow the instructions provided within the GitHub issue template.
# Feedback

View File

@@ -45,7 +45,8 @@ the two projects are meant to be used:
- Downloads and installs development tools (required by Homebrew):
- [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](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
[App Store](http://www.apple.com/macosx/whats-new/app-store.html) software.
- Downloads, installs, and configures non-App Store software applications.
@@ -72,7 +73,7 @@ Current Version (stable):
git clone https://github.com/bkuhlmann/mac_os.git
cd mac_os
git checkout v1.2.0
git checkout v2.0.0
Master Version (unstable):
@@ -88,28 +89,29 @@ Run the following script:
You will be presented with the following options:
Boot:
B: Create boot disk.
B: Create boot disk.
Install:
b: Apply basic settings.
t: Install development tools.
h: Install Homebrew software.
m: Install Mac App Store software.
a: Install application software.
x: Install application software extensions.
d: Apply default settings.
s: Setup installed software.
i: Install everything (i.e. executes all install options).
b: Apply basic settings.
t: Install development tools.
hf: Install Homebrew Formulas.
hc: Install Homebrew Casks.
m: Install Mac App Store software.
a: Install application software.
x: Install application software extensions.
d: Apply default settings.
s: Setup installed software.
i: Install everything (i.e. executes all install options).
Restore:
R: Restore settings from backup.
R: Restore settings from backup.
Manage:
c: Check status of managed software.
C: Caffeinate machine.
ua: Uninstall application software.
ux: Uninstall application software extension.
ra: Reinstall application software.
rx: Reinstall application software extension.
w: Clean work (temp) directory.
q: Quit/Exit.
c: Check status of managed software.
C: Caffeinate machine.
ua: Uninstall application software.
ux: Uninstall application software extension.
ra: Reinstall application software.
rx: Reinstall application software extension.
w: Clean work (temp) directory.
q: Quit/Exit.
Choose option `i` to run all install options or select a specific option to run a single option.
Each option is designed to be re-run if necessary. This can also be handy for performing upgrades,
@@ -140,7 +142,8 @@ All executable scripts can be found in the `bin` folder:
- `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
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
customized.*
- `bin/run`: The main script and interface for macOS setup.
@@ -158,9 +161,9 @@ project is built upon the functions found in the `lib` folder. See the
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.
- 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
@@ -174,11 +177,11 @@ Read [CONTRIBUTING](CONTRIBUTING.md) for details.
# License
Copyright (c) 2016 [Alchemists](https://www.alchemists.io).
Read the [LICENSE](LICENSE.md) for details.
Read [LICENSE](LICENSE.md) for details.
# History
Read the [CHANGELOG](CHANGELOG.md) for details.
Read [CHANGES](CHANGES.md) for details.
Built with [Bashsmith](https://github.com/bkuhlmann/bashsmith).
# Credits

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

39
bin/run
View File

@@ -35,28 +35,29 @@ while true; do
printf "\nUsage: run OPTION\n"
printf "\nOSX Options:\n"
printf " Boot:\n"
printf " B: Create boot disk.\n"
printf " B: Create boot disk.\n"
printf " Install:\n"
printf " b: Apply basic settings.\n"
printf " t: Install development tools.\n"
printf " h: Install Homebrew software.\n"
printf " m: Install Mac App Store software.\n"
printf " a: Install application software.\n"
printf " x: Install application software extensions.\n"
printf " d: Apply default settings.\n"
printf " s: Setup installed software.\n"
printf " i: Install everything (i.e. executes all install options).\n"
printf " b: Apply basic settings.\n"
printf " t: Install development tools.\n"
printf " hf: Install Homebrew Formulas.\n"
printf " hc: Install Homebrew Casks.\n"
printf " m: Install Mac App Store software.\n"
printf " a: Install application software.\n"
printf " x: Install application software extensions.\n"
printf " d: Apply default settings.\n"
printf " s: Setup installed software.\n"
printf " i: Install everything (i.e. executes all install options).\n"
printf " Restore:\n"
printf " R: Restore settings from backup.\n"
printf " R: Restore settings from backup.\n"
printf " Manage:\n"
printf " c: Check status of managed software.\n"
printf " C: Caffeinate machine.\n"
printf " ua: Uninstall application software.\n"
printf " ux: Uninstall application software extension.\n"
printf " ra: Reinstall application software.\n"
printf " rx: Reinstall application software extension.\n"
printf " w: Clean work (temp) directory.\n"
printf " q: Quit/Exit.\n\n"
printf " c: Check status of managed software.\n"
printf " C: Caffeinate machine.\n"
printf " ua: Uninstall application software.\n"
printf " ux: Uninstall application software extension.\n"
printf " ra: Reinstall application software.\n"
printf " rx: Reinstall application software extension.\n"
printf " w: Clean work (temp) directory.\n"
printf " q: Quit/Exit.\n\n"
read -p "Enter selection: " response
printf "\n"
process_option $response

View File

@@ -191,6 +191,7 @@ install_zip_app() {
printf "Preparing...\n"
cd "$MAC_OS_WORK_PATH"
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"

View File

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