diff options
author | Mike Burns <mike@mike-burns.com> | 2013-08-16 15:42:56 +0200 |
---|---|---|
committer | Mike Burns <mike@mike-burns.com> | 2013-08-16 16:11:36 +0200 |
commit | 975b347b7206a0e9caeeea8349e4765b4db654f9 (patch) | |
tree | 7e993414fce578e351b38d0a761670ee551f22b0 /bin | |
parent | 526fb25aff2b27b46aaa4754f5b613ca1c97f8c3 (diff) |
Pre-up, post-up, pre-down, and post-down hooks
These are programs that, if they exist, will run before or after the
syncronization/removal is run. Three use cases caused this:
1. The thoughtbot dotfiles will run a vundle installation set of
commands after intitial synchronization.
2. I changed the location of `.bash_history` to `.bash/history` and
wanted to move `.bash_history` to `.bash/history` after up to preserve
existing history.
3. Moving from an existing old-style custom install script to `rcup`
might require some cleanup; this happened in practice, and required a
simple script.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/lsrc | 2 | ||||
-rwxr-xr-x | bin/rcdn | 5 | ||||
-rwxr-xr-x | bin/rcup | 9 |
3 files changed, 13 insertions, 3 deletions
@@ -140,7 +140,7 @@ is_metafile() { host_portion=`echo $1 | sed -e 's/host-.*/host-/'` tag_portion=`echo $1 | sed -e 's/tag-.*/tag-/'` - [ x$host_portion = 'xhost-' -o x$tag_portion = 'xtag-' ] + [ x$host_portion = 'xhost-' -o x$tag_portion = 'xtag-' -o "x$1" = "xhooks" ] } dotfiles_dir_excludes() { @@ -70,6 +70,9 @@ if [ -e $HOME/.rcrc ]; then fi handle_command_line $* +: ${DOTFILES_DIRS:=$DOTFILES_DIRS $DEFAULT_DOTFILES_DIR} + +run_hooks pre down for dest_and_src in `lsrc $LS_ARGS`; do saved_ifs=$IFS @@ -81,3 +84,5 @@ for dest_and_src in `lsrc $LS_ARGS`; do remove_link $dest $dest $sigil done + +run_hooks post down @@ -119,13 +119,13 @@ handle_command_line() { handle_common_flags rcup $version $verbosity tags=${arg_tags:-$TAGS} - dotfiles_dirs=${dotfiles_dirs:-$DOTFILES_DIRS} + DOTFILES_DIRS=${dotfiles_dirs:-$DOTFILES_DIRS} files=$@ for tag in $tags; do LS_ARGS="$LS_ARGS -t $tag" done - for dotfiles_dir in $dotfiles_dirs; do + for dotfiles_dir in $DOTFILES_DIRS; do LS_ARGS="$LS_ARGS -d $dotfiles_dir" done for exclude in $excludes; do @@ -146,6 +146,9 @@ if [ -e $HOME/.rcrc ]; then fi handle_command_line $* +: ${DOTFILES_DIRS:=$DOTFILES_DIRS $DEFAULT_DOTFILES_DIR} + +run_hooks pre up for dest_and_src in `lsrc $LS_ARGS`; do saved_ifs=$IFS @@ -162,3 +165,5 @@ for dest_and_src in `lsrc $LS_ARGS`; do handle_file $src $dest $sigil done + +run_hooks post up |