-
Notifications
You must be signed in to change notification settings - Fork 7
Requirements
Todd Thomas edited this page Feb 2, 2017
·
4 revisions
- 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
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
Since we work in Linux all day, does it really make sense to use UNIX versions of these tools? No.
- homebrew/dupes/ed --with-default-names
- homebrew/dupes/gzip
- gnu-indent --with-default-names
- findutils --with-default-names
- gnu-which --with-default-names
- wget --with-pcre
- gnu-tar --with-default-names
- homebrew/dupes/diffutils
- gnu-time --with-default-names
- homebrew/dupes/grep --with-default-names
- gawk
- gnupg2
Afterwards configure ~/.bashrc
with helper functions to use grep and find for common tasks.
- git
- nmap
- homebrew/dupes/rsync
- ssh-copy-id
- watch
- tree
- pstree
- psgrep
- whatmask
- ipcalc
- dos2unix
-
testdisk TestDisk & PhotoRec help to recover volumes and files, even after
rm -rf filename
- tcl-tk langauge; because you never know...
- java JRE latest/v1.8.0_121 - for Adobe CS support
- VirtualBox
- wireshark
- flux
- osxfuse and sshfs
- atom
- gfxcardstatus for those of us with docking stations
- android-file-transfer
- Google Chrome
- VMware Fusion 7
- Python and Python3
- pip
- Ruby
- Update/Install Gems
- Go
- Bash - the real version
- Vim: The Power and the Glory
- Neovim: Modernized, turbo-charged Vim
- Amazon AWS CLI
- Vagrant
- Packer
- Terraform
- Ansible
- Docker
- Add a space for common remote access tokens
- HashiCorp Atlas (
ATLAS_TOKEN
) -
Homebrew / Github (
HOMEBREW_GITHUB_API_TOKEN
) - etc.
- Pull the code for vimSimple
- Disable python rope
- Add JSON filetype handling rules to Vim config
- 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]
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.
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~