X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/ecae835d593673f0f721b4de19ce2718f8ecb3bb..bda9d51f221aba0d3aba2be58c9dde82193611d7:/mr diff --git a/mr b/mr index 76c629c..89f3281 100755 --- a/mr +++ b/mr @@ -229,7 +229,7 @@ mr is run by joey. The second uses the hours_since function been at least 12 hours since the last update. skip = test $(whoami) != joey - skip = [ "$1" = update ] && [ $(hours_since "$1") -lt 12 ] + skip = [ "$1" = update ] && ! hours_since "$1" 12 =item chain @@ -488,7 +488,7 @@ sub action { #{{{ system("mkdir", "-p", $dir); } } - elsif ($action eq 'update') { + elsif ($action =~ /update/) { if (! -d $dir) { return action("checkout", $dir, $topdir, $subdir); } @@ -899,6 +899,9 @@ lib = exit 1 } hours_since() { + if [ -z "$1" ] || [ -z "$2" ]; then + error "mr: usage: hours_since action num" + fi for dir in .git .svn .bzr CVS .hg; do if [ -e "$MR_REPO/$dir" ]; then flagfile="$MR_REPO/$dir/.mr_last$1" @@ -908,8 +911,13 @@ lib = if [ -z "$flagfile" ]; then error "cannot determine flag filename" fi - perl -wle 'print -f shift() ? int((-M _) * 24) : 9999' "$flagfile" - touch "$flagfile" + delta=$(perl -wle 'print -f shift() ? int((-M _) * 24) : 9999' "$flagfile") + if [ "$delta" -lt "$2" ]; then + exit 0 + else + touch "$flagfile" + exit 1 + fi } update =