Overview

Dotfiles and command-line tools

This repository contains my "dot" files and other command-line tools. While I may have others that I choose to selectively install in a particular environment, the files in this repository form the baseline and are among the first components to be installed setting up a new environment.

Assumptions

I use Mac OS X as my primary development environment, deploying most frequently to virtualized Debian-based Linux server instances. These tools reflect that set-up, so you may need to change things around to suit your particular environment(s).

Pre-requisites

You will definitely need:

  • a compiler (Xcode for OS X, build-essential for Debian)

Optional:

Bootstrapping

You can either manually copy over the files that you find useful, or you can get the whole enchilada in a new environment via one of two bootstrap methods.

The quickest method is to simply copy and paste the following commands into a terminal window.

Mac:

/bin/bash "$(curl -fsSL https://bitbucket.org/j/cmd/raw/tip/etc/bootstrap.sh)"
source ~/tools/etc/link && updatevim

Linux:

wget -qO /tmp/bootstrap.sh https://bitbucket.org/j/cmd/raw/tip/etc/bootstrap.sh && /bin/bash /tmp/bootstrap.sh
source ~/tools/etc/link && updatevim

Slightly more manual method, which requires Mercurial to already be installed:

hg clone https://bitbucket.org/j/cmd ~/tools
./tools/etc/bootstrap.sh
source ~/tools/etc/link && updatevim

The prompt-driven bootstrap script should be idempotent, optionally installing tools such as:

File and directory structure

In an effort to preserve tool isolation, the bootstrap script will install certain third-party components to ~/.local.

I store my versioned command line tools in a folder (~/tools) that in turn contains several sub-folders (bin etc lib) to help keep the files organized. Since I link (etc/link) the dot files to the root of my home folder, I prefer to store them without the prepended dot ("hgignore" rather than ".hgignore"). I add the dot when creating the symlink. So if you use any of those files, make sure you put the dot back.

~/tools/
        bin/
        lib/
        etc/
            vim/

Warning

I change these files frequently, and sometimes I may break things that worked just fine beforehand. If you find something that doesn't operate as optimally as it could, please let me know.

Inspiration

InfiniteRed