My disaster recovery plan.
This repository contains most of my base configuration for bash shells, but is primarily focused on OSX. These files make it simple to configure a new machine from scratch as well as keep it up-to-date over time.
git
must be installedbash
should be configured as the preferred shell
git clone https://github.com/travi/dotfiles.git && cd dotfiles/setup/ && source init.sh
setup/init.sh
presents two options:
- Environment configuration
- Software Installation/Update
- Creates a symlink for
~/.dotfiles
in the home directory - Symlinks dotfiles from each folder under
~/.dotfiles
into the home directory - Symlinks dotfiles from each folder under
~/.dotfiles.extra
into the home directory - Symlinks maven plugins into global plugins directory
- Symlinked
.bash_profile
sources several files in order to:- Define environment variables
- Define aliases
- Enable my custom prompt
- Source additional files from
~/.dotfiles/osx/
and~/.dotfiles/windows/
- Source
~/.dotfiles.extra/bash/source.sh
- Configures OSX defaults
- Updates global NPM packages
- Installs/Updates VIM plugins
- Installs Homebrew
- Installs the applications defined in:
~/.dotfiles/osx/Brewfile
~/.dotfiles.extra/osx/Brewfile
The following environments are the ones that this configuration has been tested in by me, in order from most often to least often used.
- Terminal.app on macOS (Sierra is my primary)
- GitBash on Windows
- SSH sessions into Ubuntu
With Vagrant available, you can run the full verification locally:
rake --rakefile=test/Rakefile
If Vagrant isn't installed, or you want to only run the lint checks:
rake --rakefile=test/Rakefile lint
-
Lint
- Shellcheck for shell scripts
- Markdownlint for markdown files
-
Behavioral tests
- TestKitchen to verify that a fresh machine would be configured appropriately (coverage is sparse for these tests at this point)
Strongly influenced by: