Fresh Brew Cask Dotfiles
This dotfiles repository utilizes the following:
Freshshell (fresh) to maintain and generate dotfiles
fresh is a tool to source shell configuration (aliases, functions, etc) from others into your own configuration files. It supports files such as ackrc and gitconfig. Think of it as Bundler for your dot files.
Homebrew (brew) for Mac command line tools automated installation
Homebrew installs the stuff you need that Apple didn’t.
Homebrew Cask (brew cask) for Mac Native Apps automated installation
Homebrew Cask extends Homebrew and brings its elegance, simplicity, and speed to OS X applications and large binaries alike. It only takes 1 line in your shell
Download or Clone
Freshshell instructions suggest, installing your dotfiles in '~/.dotfiles'. To download, choose one of the options below.
Download using curl (not git):
mkdir ~/.dotfiles; curl -#L https://github.com/jalexanderfox/dotfiles/tarball/master | tar -xzv --strip-components 1 -C ~/.dotfiles
Download using git:
cd; git clone https://github.com/jalexanderfox/dotfiles.git && mv dotfiles ~/.dotfiles
There are several options for installing part or all of what comes with this dotfiles repo. If you want to setup a new Mac, you might consider running the Full Install & Setup script. If you just need the dotfiles for a vagrant box or a linux environment, then you might consider running just the Dotfiles (fresh) Install & Setup script.
Now you need to decide whether you want to Full Install & Setup or setup individually:
As this repository relies heavily on the dotfiles created by others, it attempts to bring the best of theirs into this one but keeps them up to date by using fresh. Make sure you know what will be installed, setup and configured before executing these scripts.
Setup & Install
Now that you have the repo, it's time to setup and install the parts that you want. Install & setup whatever and however you like. Want to install them individually? Go ahead. Want to install them all? You are braver than I am Full Install. Want to install some? Well you can do that too. Here is how:
Suggested Install & Setup
Installs Homebrew(brew), Dotfiles(fresh) and Homebrew Casks (cask)
cd ~/.dotfiles && ./setup.sh brew fresh cask
Homebrew (brew) Install & Setup
cd ~/.dotfiles && ./setup.sh brew
Dotfiles (fresh) Install & Setup
cd ~/.dotfiles && ./setup.sh fresh
cd ~/.dotfiles && ./setup.sh terminal
Brew Casks (native apps) Install & Setup
cd ~/.dotfiles && ./setup.sh cask
Full Install & Setup
This script will execute all of the Individual Install Scripts in the order in which they appear.
cd ~/.dotfiles && ./setup_all.sh
Extra commands and Private configurations
Add extra custom commands and private configuration without creating a new fork and without committing sensitive information to a public repo.
When running Dotfiles Fresh Setup, if
~/.dotfiles/.private do not exist, they will be created. You can use these files to add a few custom commands without the need to fork this entire repository and to add commands and configurations that you do not want to commit to a public repository. When fresh runs, it will source .extra and .private along with the other files. These files get sourced last so they override other configurations.
Example .extra or .private file:
# Git credentials # Not in the repository, # to prevent accidentally committing under the wrong name GIT_AUTHOR_NAME="Jane Smith" GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME" git config --global user.name "$GIT_AUTHOR_NAME" GIT_AUTHOR_EMAIL="email@example.com" GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL" git config --global user.email "$GIT_AUTHOR_EMAIL"
Additionally, fresh will
touch ~/.gitconfig.local which is used by your .gitconfig. You can place custom configurations here ~/.gitconfig.local (which is preferred, otherwise any time you
fresh your global configurations are wiped out.)
[user] name = jared.fox email = firstname.lastname@example.org [credential] helper = osxkeychain
NOTE: These files are set to be ignored by git automatically for you.
If you find that your .extra file is getting large, you may want to fork this repository instead.
- the setup_fresh.sh requires the gnu version of readlink and even if setup_brew.sh is run before setup_fresh.sh, it currently fails on mac because the $PATH does not yet have coreutils (with gnu readlink). The bash_profile can be sourced in the .freshrc as a temporary fix.
@ptb and his OS X Lion Setup repository