My disaster recovery plan.
This repository contains most of my base configuration, but is primarily focused on OSX and linux. 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 installed- Homebrew is installed
- pyenv is installed from homebrew
- in order to use homebrew, install the homebrew recommended packages:
sudo apt-get install build-essential procps curl file git
git clone https://github.com/trevtrich/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
- Installs Homebrew
- Installs the applications defined in:
~/.dotfiles/linux/Brewfile
- Installs some useful Debian packages through
apt-get
- To get ergodox software working, use this website
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: