]>
git.madduck.net Git - code/myrepos.git/blobdiff - mrconfig.complex
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
# Teach mr to run a few git and svn specific commands.
svn_cleanup = svn cleanup "$@"
git_gc = git gc "$@"
# Teach mr to run a few git and svn specific commands.
svn_cleanup = svn cleanup "$@"
git_gc = git gc "$@"
-git_push = git push "$@"
-svn_tag = svn ls "$(LANG=C svn info . | grep -i ^URL: | cut -d ' ' -f 2 | sed -e 's/trunk/tags/')"
-# This hack is here because git-pull stupidly outputs tag info to stderr.
+svn_tag = svn ls "$(LC_ALL=C svn info . | grep -i ^URL: | cut -d ' ' -f 2 | sed -e 's/trunk/tags/')"
+# I prefer to git-svn rebase to fetch
+git_svn_update = git svn rebase
+# This hack is here because git pull stupidly outputs tag info to stderr.
# Shut it up but let real errors through, for use in cron.
quietupdate = mr -s -n update 3>&1 1>/dev/null 2>&3 | egrep -v '(storing tag|tag: )' || true
# Tests used below.
# Shut it up but let real errors through, for use in cron.
quietupdate = mr -s -n update 3>&1 1>/dev/null 2>&3 | egrep -v '(storing tag|tag: )' || true
# Tests used below.
# $HOME uses
# - full checks whether I probably want a full checkout (quite large),
# if not, the checkout is minimal
# $HOME uses
# - full checks whether I probably want a full checkout (quite large),
# if not, the checkout is minimal
+# - on checks whether the given host basename is one of the listed
+# values. A value can also have a username in it, ie "joey@dodo".
# - wantmedia checks whether I probably want various large media files
# - wantmedia checks whether I probably want various large media files
# - 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
# - 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
+ hostname="$(hostname)"
+ whoami="$(whoami)"
- expr $(GIT_CONFIG=$HOME/.git/config git config remote.origin.url) : 'git://' >/dev/null
+ ( GIT_CONFIG=$HOME/.git/config git config remote.origin.url || cat .git/remotes/origin ) | grep -q 'git://'
- test "$(whoami)" = joey
+ test "$whoami" = joey && ! anon
- wantmedia() {
- if [ "$(whoami)" = joey ]; then
- case "$(hostname)" in
- kodama|dragon|dodo)
- return 0
- ;;
- esac
- fi
+ on() {
+ for host in $@; do
+ if [ "${host%@*}" != "${host#*@}" ]; then
+ if [ "$whoami" != "${host%@*}" ]; then
+ continue
+ fi
+ host="${host#*@}"
+ fi
+ if [ "$hostname" = "$host" ]; then
+ return 0
+ fi
+ done
+ wantmedia() {
+ on joey@kodama joey@dragon joey@dodo joey@turtle
+ }
- if [ "$(whoami)" = joey ]; then
- case "$(hostname)" in
- wren|kodama|dragon|dodo|bluebird|slug)
- return 0
- ;;
- esac
- fi
- return 1
+ on joey@wren joey@kodama joey@dragon joey@dodo joey@turtle \
+ joey@blurbird joey@slug
- test "$(hostname)" = kodama
- }
- kite() {
- test "$(hostname)" = wren
}
# The root of my home directory.
[]
}
# The root of my home directory.
[]
checkout =
if anon; then
git clone git://git.kitenet.net/joey/home joey
checkout =
if anon; then
git clone git://git.kitenet.net/joey/home joey
git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/home joey
fi
git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/home joey
fi
+# Dummy target to create Maildir. Doesn't run offlineimap since I have that
+# cronned on machines where I want it.
+[Maildir]
+update = :
+skip = ! full
+checkout = mkdir Maildir Maildir/cur Maildir/new Maildir/tmp; chmod 700 Maildir
+status = :
+
# This is a dummy target, all it does is run fixups at the end of
# an update.
[tmp]
# This is a dummy target, all it does is run fixups at the end of
# an update.
[tmp]
checkout =
if anon; then
git clone git://git.kitenet.net/joey/home-etc .etc
checkout =
if anon; then
git clone git://git.kitenet.net/joey/home-etc .etc
skip = ! mylaptop || ([ "$1" = update ] && ! hours_since "$1" 12)
push = error "as if!"
skip = ! mylaptop || ([ "$1" = update ] && ! hours_since "$1" 12)
push = error "as if!"
+[/etc]
+# I use etckeeper to keep /etc in git. But it only works if I'm root,
+# and if it's not already in etc, skip it.
+skip = ! test -d /etc/.git || ! test "$(whoami)" = root
+
[dpkg]
# A merge of the upstream dpkg git repo and my own personal branch.
checkout =
[dpkg]
# A merge of the upstream dpkg git repo and my own personal branch.
checkout =