Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87e84a658f | ||
|
|
949a6b9d1e | ||
|
|
3b6137ec36 | ||
|
|
e1bc7e939a | ||
|
|
8bf0ef473d | ||
|
|
79f7103179 | ||
|
|
38fa30a028 | ||
|
|
a2a2820098 | ||
|
|
3a896882c9 | ||
|
|
8af0c44eba | ||
|
|
d9440953ac | ||
|
|
8528e0ff01 | ||
|
|
7db6835173 | ||
|
|
7fc9304834 | ||
|
|
b6e9f38bac | ||
|
|
3320a8d027 | ||
|
|
2b54537acb | ||
|
|
d546d79759 | ||
|
|
57e20929b3 | ||
|
|
d45be4e61d | ||
|
|
8fbf63a783 | ||
|
|
d03c461739 |
@@ -1,3 +0,0 @@
|
||||
# v1.0.0 (2016-10-05)
|
||||
|
||||
- Initial version.
|
||||
37
CHANGES.md
Normal file
37
CHANGES.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# 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.
|
||||
@@ -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
|
||||
|
||||
|
||||
128
README.md
128
README.md
@@ -2,15 +2,27 @@
|
||||
|
||||
[](https://www.patreon.com/bkuhlmann)
|
||||
|
||||
Shell scripts for automated macOS machine setup. This project provides the foundational tooling for
|
||||
automated macOS machine setup. To customize further see the companion
|
||||
[macOS Config](https://github.com/bkuhlmann/mac_os-config) project for details.
|
||||
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
|
||||
potential of what this project can do, please see the companion
|
||||
[macOS Config](https://github.com/bkuhlmann/mac_os-config) project for details. The *macOS 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 how
|
||||
the two projects are meant to be used:
|
||||
|
||||
- **macOS** (this project) - Foundation and framework for building customizated macOS machine
|
||||
setups.
|
||||
- **[macOS Config](https://github.com/bkuhlmann/mac_os-config)** - The layer on top of this *macOS*
|
||||
project which defines a custom machine setup and base implementation. The project is meant to be
|
||||
forked for as many custom machine setups as needed.
|
||||
|
||||
<!-- Tocer[start]: Auto-generated, don't remove. -->
|
||||
|
||||
# Table of Contents
|
||||
|
||||
- [Features](#features)
|
||||
- [Screencast](#screencast)
|
||||
- [Requirements](#requirements)
|
||||
- [Setup](#setup)
|
||||
- [Usage](#usage)
|
||||
@@ -26,18 +38,30 @@ automated macOS machine setup. To customize further see the companion
|
||||
|
||||
# Features
|
||||
|
||||
- Provides a command line interface for installation and management of macOS software.
|
||||
- Downloads and installs development tooling (required by Homebrew):
|
||||
- Provides a command line interface, written in Bash with no additional dependencies, for
|
||||
installation and management of a macOS machine.
|
||||
- Supports macOS boot disk creation for setting up a machine with a fresh install of the operation
|
||||
system.
|
||||
- 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 software applications generally not in the
|
||||
[App Store](http://www.apple.com/macosx/whats-new/app-store.html).
|
||||
- Downloads, installs, and configures software extensions.
|
||||
- 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.
|
||||
- Downloads, installs, and configures software application extensions.
|
||||
- Applies basic and default software settings.
|
||||
- Sets up and configures installed software for use.
|
||||
- Supports restoration of machine backups.
|
||||
|
||||
# Screencast
|
||||
|
||||
[](https://asciinema.org/a/88971)
|
||||
|
||||
# Requirements
|
||||
|
||||
0. [macOS](https://www.apple.com/macos) (with latest software updates applied)
|
||||
0. [macOS Sierra](https://www.apple.com/macos) (with latest software updates applied)
|
||||
0. [Xcode](https://developer.apple.com/xcode) (with accepted license agreement)
|
||||
|
||||
# Setup
|
||||
@@ -49,7 +73,7 @@ Current Version (stable):
|
||||
|
||||
git clone https://github.com/bkuhlmann/mac_os.git
|
||||
cd mac_os
|
||||
git checkout v1.0.0
|
||||
git checkout v2.1.0
|
||||
|
||||
Master Version (unstable):
|
||||
|
||||
@@ -65,34 +89,36 @@ 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 system settings.
|
||||
t: Install development tools.
|
||||
h: Install Homebrew software.
|
||||
a: Install application software.
|
||||
x: Install application software extensions.
|
||||
d: Apply software defaults.
|
||||
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,
|
||||
re-running a missing/failed install, etc.
|
||||
|
||||
The option prompt can be skipped by passing the desired option directly to the run.sh script. For
|
||||
example, executing `./run.sh i` will execute the complete software install process.
|
||||
The option prompt can be skipped by passing the desired option directly to the `bin/run` script. For
|
||||
example, executing `bin/run i` will execute the complete software install process.
|
||||
|
||||
The machine should be rebooted after all install tasks have completed to ensure all settings have
|
||||
been loaded.
|
||||
@@ -102,28 +128,42 @@ in order to manage installed software and benefit from future upgrades.
|
||||
|
||||
## Customization
|
||||
|
||||
Global settings can be configured via the following script:
|
||||
All executable scripts can be found in the `bin` folder:
|
||||
|
||||
- `lib/settings.sh`
|
||||
- `bin/apply_basic_settings`: Applies basic, initial, settings for setting up a machine. *This is
|
||||
meant to be customized.*
|
||||
- `bin/apply_default_settings`: Applies useful system and application defaults. *This is meant to be
|
||||
customized.*
|
||||
- `bin/create_boot_disk`: Creates macOS boot disk.
|
||||
- `bin/install_app_store`: Installs macOS, GUI-based, App Store applications. *This is meant to be
|
||||
customized.*
|
||||
- `bin/install_applications`: Installs macOS, GUI-based, non-App Store applications. *This is meant
|
||||
to be customized.*
|
||||
- `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_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.
|
||||
- `bin/setup_software`: Configures and launches (if necessary) installed software. *This is meant to
|
||||
be customized.*
|
||||
|
||||
All script programs can be found in the `bin` folder:
|
||||
|
||||
- `bin/create_boot_disk` = Creates macOS boot disk.
|
||||
- `bin/install_dev_tools` = Installs macOS development tools required by Homebrew.
|
||||
- `bin/run` - The main script and interface for macOS setup.
|
||||
|
||||
The `lib` folder provides foundational functions for installing, re-installing, and uninstalling
|
||||
The `lib` folder provides the base framework for installing, re-installing, and uninstalling
|
||||
software. Everything provided via the [macOS Config](https://github.com/bkuhlmann/mac_os-config)
|
||||
project is built upon the functions found in the `lib` folder. See the
|
||||
[macOS Config](https://github.com/bkuhlmann/mac_os-config) project for further details.
|
||||
|
||||
- `lib/settings.sh`: Defines global settings for software applications, extensions, etc.
|
||||
|
||||
# Versioning
|
||||
|
||||
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
|
||||
|
||||
@@ -137,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
|
||||
|
||||
18
bin/apply_basic_settings
Executable file
18
bin/apply_basic_settings
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Applies basic system settings.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/apply_basic_settings"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: Basic settings script does not exist or is not executable.\n"
|
||||
fi
|
||||
18
bin/apply_default_settings
Executable file
18
bin/apply_default_settings
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Applies default settings.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/apply_default_settings"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: Default settings script does not exist or is not executable.\n"
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Creates macOS boot disk.
|
||||
|
||||
18
bin/install_app_store
Executable file
18
bin/install_app_store
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Installs App Store software.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_app_store"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: App Store install script does not exist or is not executable.\n"
|
||||
fi
|
||||
18
bin/install_applications
Executable file
18
bin/install_applications
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Installs applications.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_applications"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: Applications install script does not exist or is not executable.\n"
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Installs development tooling requirements.
|
||||
@@ -6,11 +6,18 @@
|
||||
printf "Installing Xcode CLI tools...\n"
|
||||
xcode-select --install
|
||||
|
||||
read -p "Have you completed the Xcode CLI tools install (y/n)? " response
|
||||
if [[ "$response" != "y" ]]; then
|
||||
read -p "Have you completed the Xcode CLI tools install (y/n)? " xcode_response
|
||||
if [[ "$xcode_response" != "y" ]]; then
|
||||
printf "ERROR: Xcode CLI tools must be installed before proceeding.\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf "Installing Java...\n"
|
||||
install_java "$JAVA_URL" "$JAVA_VOLUME_NAME"
|
||||
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
|
||||
|
||||
18
bin/install_extensions
Executable file
18
bin/install_extensions
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Installs application extensions.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_extensions"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: Application extensions install script does not exist or is not executable.\n"
|
||||
fi
|
||||
18
bin/install_homebrew_casks
Executable file
18
bin/install_homebrew_casks
Executable 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
18
bin/install_homebrew_formulas
Executable 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
|
||||
18
bin/restore_backup
Executable file
18
bin/restore_backup
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Performs restoration of backup data.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/restore_backup"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: Restore backup script does not exist or is not executable.\n"
|
||||
fi
|
||||
40
bin/run
40
bin/run
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Executes the command line interface.
|
||||
@@ -35,27 +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 " 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
|
||||
|
||||
18
bin/setup_software
Executable file
18
bin/setup_software
Executable file
@@ -0,0 +1,18 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Sets up and launches (if necessary) installed software.
|
||||
|
||||
# SETTINGS
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
IFS=$'\n\t'
|
||||
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/setup_software"
|
||||
|
||||
# EXECUTION
|
||||
if [[ -x "$SCRIPT_PATH" ]]; then
|
||||
"$SCRIPT_PATH"
|
||||
else
|
||||
printf "WARNING: Software setup script does not exist or is not executable.\n"
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines software installer functions.
|
||||
@@ -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"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines command line prompt options.
|
||||
@@ -11,31 +11,37 @@ process_option() {
|
||||
'B')
|
||||
bin/create_boot_disk;;
|
||||
'b')
|
||||
"$MAC_OS_CONFIG_PATH/bin/apply_basic_settings";;
|
||||
bin/apply_basic_settings;;
|
||||
't')
|
||||
bin/install_dev_tools;;
|
||||
'h')
|
||||
"$MAC_OS_CONFIG_PATH/bin/install_homebrew";;
|
||||
'hf')
|
||||
bin/install_homebrew_formulas;;
|
||||
'hc')
|
||||
bin/install_homebrew_casks;;
|
||||
'm')
|
||||
bin/install_app_store;;
|
||||
'a')
|
||||
"$MAC_OS_CONFIG_PATH/bin/install_applications";;
|
||||
bin/install_applications;;
|
||||
'x')
|
||||
"$MAC_OS_CONFIG_PATH/bin/install_extensions";;
|
||||
bin/install_extensions;;
|
||||
'd')
|
||||
"$MAC_OS_CONFIG_PATH/bin/apply_default_settings";;
|
||||
bin/apply_default_settings;;
|
||||
's')
|
||||
"$MAC_OS_CONFIG_PATH/bin/setup_software";;
|
||||
bin/setup_software;;
|
||||
'i')
|
||||
caffeinate_machine
|
||||
"$MAC_OS_CONFIG_PATH/bin/apply_basic_settings"
|
||||
bin/apply_basic_settings
|
||||
bin/install_dev_tools
|
||||
"$MAC_OS_CONFIG_PATH/bin/install_homebrew"
|
||||
"$MAC_OS_CONFIG_PATH/bin/install_applications"
|
||||
"$MAC_OS_CONFIG_PATH/bin/install_extensions"
|
||||
"$MAC_OS_CONFIG_PATH/bin/apply_default_settings"
|
||||
"$MAC_OS_CONFIG_PATH/bin/setup_software"
|
||||
bin/install_homebrew_formulas
|
||||
bin/install_homebrew_casks
|
||||
bin/install_app_store
|
||||
bin/install_applications
|
||||
bin/install_extensions
|
||||
bin/apply_default_settings
|
||||
bin/setup_software
|
||||
clean_work_path;;
|
||||
'R')
|
||||
"$MAC_OS_CONFIG_PATH/bin/restore_backup";;
|
||||
bin/restore_backup;;
|
||||
'c')
|
||||
verify_homebrews
|
||||
verify_applications
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines reinstall functions.
|
||||
@@ -6,13 +6,13 @@
|
||||
# Reinstall application.
|
||||
reinstall_application() {
|
||||
uninstall_application
|
||||
scripts/applications.sh
|
||||
bin/install_applications
|
||||
}
|
||||
export -f reinstall_application
|
||||
|
||||
# Reinstall extension.
|
||||
reinstall_extension() {
|
||||
uninstall_extension
|
||||
scripts/extensions.sh
|
||||
bin/install_extensions
|
||||
}
|
||||
export -f reinstall_extension
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines software restore functions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines global settings.
|
||||
@@ -18,5 +18,5 @@ export MAC_OS_WORK_PATH=/tmp/downloads
|
||||
export MAC_OS_CONFIG_PATH="../mac_os-config"
|
||||
|
||||
# Java
|
||||
export JAVA_VOLUME_NAME="JDK 8 Update 101"
|
||||
export JAVA_URL="http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-macosx-x64.dmg"
|
||||
export JAVA_LABEL="Java SE Development Kit"
|
||||
export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines uninstall functions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines general utility functions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#! /bin/bash
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines verification/validation functions.
|
||||
@@ -39,7 +39,7 @@ verify_homebrews() {
|
||||
|
||||
verify_homebrew "$application" "${applications[*]}"
|
||||
fi
|
||||
done < "$PWD/scripts/homebrew.sh"
|
||||
done < "$MAC_OS_CONFIG_PATH/bin/install_homebrew"
|
||||
|
||||
printf "Homebrew check complete.\n"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user