eschew obfuscation (and espouse elucidation)

Dfm Updates: Uninstall and Updatemergeandinstall

In my dfm talk a couple weeks ago, I listed out some low hanging fruit; just a few things that I thought would be easy to add to the system.  Well, this past weekend, I went to the jQuery conference in Boston.  It was a great conference in its own right, and I hope to post on it this week, but for now I want to talk about the improvements I made to dfm while on the plane.

dfm uninstall

The first thing I tackled was the ability to remove dotfiles if they weren’t needed anymore.  Sometimes, you need to log into a shared account (such as root) and you’d like to use your settings, but not leave them behind for the next person.  Now, ‘dfm uninstall’ does just that.

dfm updatemergeandinstall

Up until now, fetching your latest dotfiles changes required two steps: ‘dfm updates’ and ‘dfm mergeandinstall’.  Well, now there’s updatemergeandinstall that does both.  It takes the same flags as either updates or mergeandinstall and works just like it sounds.  Oh, and for the perennially lazy (i.e., me), it has a shortcut named ‘umi’.

The Rest

The test suite covers all the new commands and I added more coverage for the lightly tested mergeandinstall code.  ’dfm install’ now cleans up dangling symlinks, for those times when a file is no longer needed.  And, finally, I refactored the code somewhat to make it easier to work on and to reduce duplication.

To update to the latest, just run these commands:

$ dfm remote add upstream git://github.com/justone/dotfiles.git
$ dfm pull upstream master