X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/7634c277a5d0fedfbeb314d79e6974fb16460472..97a2a3f361b0d3ab9767be3ac008da368185be0b:/mrconfig?ds=sidebyside

diff --git a/mrconfig b/mrconfig
index 5c1d8c2..8e18756 100644
--- a/mrconfig
+++ b/mrconfig
@@ -1,22 +1,82 @@
 # An example config file for the mr(1) command.
 
+[DEFAULT]
+# Teach mr how to run svn cleanup.
+cleanup = if [ -d "$MR_REPO"/.svn ]; then svn cleanup ; fi
+# And how to run git gc and push.
+gc = if [ -d "$MR_REPO"/.git ]; then git gc; fi
+push = if [ -d "$MR_REPO"/.git ]; then git push; fi
+# Tests used in the skips below.
+# - wantsrc checks whether I probably want a full source checkout (quite
+#   large)
+# - wantmedia checks whether I probably want various large media files
+#   here.
+# - private are hosts I trust private data to
+# - mylaptop only succeeds if it's on my main development laptop, which 
+#   gets lots of extra cruft
+# - kite only succeeds on kite
+lib =
+	wantsrc() {
+		test "$(whoami)" = joey
+	}
+	wantmedia() {
+		if [ "$(whoami)" = joey ]; then
+			case "$(hostname)" in
+				kodama|dragon|dodo)
+					return 0
+			;;
+			esac
+		fi
+		return 1
+	}
+	private() {
+		if [ "$(whoami)" = joey ]; then
+			case "$(hostname)" in
+			wren|kodama|dragon|dodo|bluebird)
+				return 0
+			;;
+			esac
+		fi
+		return 1
+	}
+	mylaptop() {
+		test "$(hostname)" = kodama
+	}
+	kite() {
+		test "$(hostname)" = wren
+	}
+
 [src/mr]
-checkout = git clone ssh://kitenet.net/srv/git/kitenet.net/mr
+checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/mr
+skip = ! wantsrc
 
 [src/linux-2.6]
 checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
-# I only check this out on kodama, otherwise skip it.
-skip = test $(hostname) != kodama
+skip = ! mylaptop || ! wantsrc ||
+	([ "$1" = update ] && [ $(hours_since "$1") -lt 12 ])
 
 [src/dpkg]
 # A merge of the upstream dpkg git repo and my own personal branch.
-checkout = git clone git://git.debian.org/git/dpkg/dpkg.git && \
-	cd dpkg && \
-	git remote add kite ssh://kitenet.net/srv/git/kitenet.net/dpkg && \
-	git fetch kite && \
+checkout =
+	git clone git://git.debian.org/git/dpkg/dpkg.git &&
+	cd dpkg &&
+	git remote add kite ssh://git.kitenet.net/srv/git/kitenet.net/dpkg &&
+	git fetch kite &&
 	git checkout -b sourcev3 kite/sourcev3
 update = git pull origin master && git pull kite sourcev3
 commit = git push kite
+skip = ! wantsrc
+
+[html/www.debian.org]
+# Still in CVS..urk!
+checkout =
+	CVSROOT=:ext:joeyh@cvs.debian.org:/cvs/webwml
+	cvs co -d www.debian.org webwml
+# cvs sucks sufficiently that I prefer to run these commands by hand,
+# and only rarely
+update = echo "skipping cvs update (too slow)"
+status = echo "skipping cvs status (too ugly)"
+skip = ! mylaptop || ! wantsrc
 
 # My home directory, which I keep in svn.
 []
@@ -24,6 +84,13 @@ checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname)
 # run svnfix after each update
 update = svn update && svnfix
 
-[default]
-# Teach mr how to run svn cleanup.
-cleanup = if [ -d "$MR_REPO"/.svn ]; then svn cleanup ; fi
+[mail]
+checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail
+skip = ! private
+
+# Example of how to remember to delete a repo, when one mrconfig file is
+# used on multiple systems. If you're feeling brave, use rm -rf $MR_REPO
+# instead. This approach can also be used for renames.
+[foo]
+update = error "$MR_REPO is no longer used and should be deleted"
+skip = ! test -d "$MR_REPO"