Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
[ikiwiki] / gitremotes
CommitLineData
d135bd3f
JH
1#!/usr/bin/perl
2# Parses list of remotes in doc/git.mdwn, configures git to use them
3# all, and fetches updates from them.
4
5my $error=0;
6
7open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
8while (<IN>) {
3305fb9d 9 if (/^\*\s+\[?\[?(\w+)\]?\]?\s+`([^>]+)`/) {
d135bd3f
JH
10 # note that the remote name has to be a simple word (\w)
11 # for security/sanity reasons
12 my $remote=$1;
13 my $url=$2;
14
15 # check configured url to deal with it changing
16 my $info=`git remote show -n $remote`;
17 my ($oldurl)=$info=~/URL: (.*)/m;
18 if ($oldurl ne $url) {
19 system("git remote rm $remote 2>/dev/null");
20 $error |= system("git", "remote", "add", "-f", $remote, $url);
21 }
22 else {
23 $error |= system("git", "fetch", $remote);
24 }
25 }
26}
27close IN;
28
29exit $error;