How I use it:
-
setup a new system
-
install git
-
change to home dir:
cd $HOME
-
git co git://github.com/cactus/dotconfigs.git .myconfigs
or
git co https://cactus@github.com/cactus/dotconfigs.git .myconfigs
depending on firewall rules -
Run the 'move in' script:
.myconfigs/scripts/create_links.bash
Some action may be required. The script will report if any files already exist, and would cause a collision. Remove those files and run the script again. Rinse and repeat until no output is produced.
-
Source the new .bashrc:
. $HOME/.bashrc
After I push a new change to the repo, and want to update the dotfiles on a particular system. Note that dotfiles_update is a shell function now (exported so I don't have to call the file directly anymore):
dotfiles_update
this will also create symlinks for any new files
-
scripts/
contains the helper scripts to create symlinks and update the dotfiles local repo
-
examples/
some reference configs
-
dotfiles/
the dot files for various things. these are symlinked to the
$HOME
directory and prepended with a.
.example: $HOME/.bashrc -> dotfiles/bashrc
-
.bashrc_pre
and.bashrc_post
files can be created to handle system specific configuration. These files are sourced at the beginning, and end (respectively), of the.bashrc
file.This allows modification of behaviors later in the
.bashrc
file, while keeping that file as system agnostic as possible. For example, to disable virtualenvwrapper for python, I create a.bashrc_pre
withexport VENVW="disable"
in it. -
On some systems, the
.bashrc
file can take a while to parse. This is especially the case when loading hooks for rvm and virtualenvwrapper. There is only one remote system (a VM) that I notice this on though, and I attribute it to the very slow I/O that system occasionally sees.