Skip to content

Requirements

Todd Thomas edited this page Feb 2, 2017 · 4 revisions

Requirements

The Setup

  • Backup some files before we begin (if theEnv='TEST'; we'll use these files for comparisons incase of failure)
  • Restore the contents of ~/.ssh/ (required for Github clones)
  • If we don't have it, add the Github remote RSA key to the local ~/.ssh/knownhosts file
  • Restore ~/Documents/system from backups (migrated settings for Terminal, IRC client, et al.)
  • If theEnv='TEST' this step requires data seeding
  • If theEnv='LIVE' configurations from the current system have to be stored in ~/Documents/system and backed up.
  • Configure the Shell: base options
  • Start a tailored ~/.bash_profile and ~/.bashrc

System Installs

Install GNU Programs

  • gnu-sed
  • coreutils
  • Set new paths so we can use these programs to build the remainder.
  • Set new man paths while we're at it.
  • System: /usr/share/man
  • Homebrew: /usr/local/share/man

Install more GNU Tools and

Since we work in Linux all day, does it really make sense to use UNIX versions of these tools? No.

Afterwards configure ~/.bashrc with helper functions to use grep and find for common tasks.

Useful System Utilities

Install the Casks (GUI Apps)

Install and Configure common Programming Languages and Tools

Install and Configure common DevOps Tools

Configure Vim

Configure The macOS

  • System-wide
  • Set the hostname(s)
  • hostname
  • Terminal hostname
  • AirDrop hostname
  • Save to the local disk by default - not iCloud.
  • Disable smart quotes and dashes system-wide
  • The Finder
  • Display all folders in List View
  • Enable sidebar directories
  • New window displays home
  • Show status bar in Finder
  • Search the current folder by default
  • Display all file extensions in Finder
  • Screenshot behavior
  • Save all screenshots to ~/Pictures/screens
  • Create a softlink on the Desktop
  • Set screenshots without window shadows
  • Show battery percentage
  • Display Configuration
  • Don't show mirroring options in the menu bar
  • Display Date/Time formatted: 'EEE MMM d h:mm a'
  • Do NOT create .DS_Store files on network volumes
  • Dialog Box behavior
  • Expand Save dialog box by default
  • Expand Print dialog box by default
  • The Dock
  • Optional timing adjustments are included by not imposed on the system.
  • Configure Basic OS Security
  • Disable Guest User at the Login Screen
  • Apple File Protocol
  • Configure Application Behavior
  • TextEdit
  • Stop Photos from opening automatically when plugging in iPhone [TEST]

Restore Personal Data

Given there are structured backups, the data restore process can be automated as well. These are the directories that will get restored:

  • Desktop
  • Documents
  • Movies
  • Music
  • Pictures
  • ~/vms (where virtual machines are stored)
  • ~/code (where coding projects are stored)

The data restoration process is a single line in bootstrap.sh. In case the backups do not fit a common rsync structure, it can easily be commented out.

Announcements

Print messages at the end of the script to indicate any last-minute configurations or validations that should be tended to post-configuration. A configuration duration is displayed at the end for my curiosity.

Fin~