summaryrefslogtreecommitdiff
path: root/gitremotes
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-04-04 17:27:48 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-04-04 17:27:48 -0400
commit8e92468eae9ac0ab8161a0c71ff6c6a0a8aef07a (patch)
tree9e26465e0ca98a5f3cbc6c72a0cace4bf83b93db /gitremotes
parent78a69e5bd632eb86ef8135e9c1d05d2c48b43362 (diff)
parent08fda4c9d374de1d3de3172a192d4d915d3dc0c1 (diff)
Merge branch 'master'
Conflicts: doc/ikiwiki-makerepo.mdwn
Diffstat (limited to 'gitremotes')
-rwxr-xr-xgitremotes29
1 files changed, 29 insertions, 0 deletions
diff --git a/gitremotes b/gitremotes
new file mode 100755
index 000000000..7b9484dd1
--- /dev/null
+++ b/gitremotes
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+# Parses list of remotes in doc/git.mdwn, configures git to use them
+# all, and fetches updates from them.
+
+my $error=0;
+
+open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
+while (<IN>) {
+ if (/^\*\s+\[?\[?(\w+)\]?\]?\s+`([^>]+)`/) {
+ # note that the remote name has to be a simple word (\w)
+ # for security/sanity reasons
+ my $remote=$1;
+ my $url=$2;
+
+ # check configured url to deal with it changing
+ my $info=`git remote show -n $remote`;
+ my ($oldurl)=$info=~/URL: (.*)/m;
+ if ($oldurl ne $url) {
+ system("git remote rm $remote 2>/dev/null");
+ $error |= system("git", "remote", "add", "-f", $remote, $url);
+ }
+ else {
+ $error |= system("git", "fetch", $remote);
+ }
+ }
+}
+close IN;
+
+exit $error;