2008-12-11 19:27:50 +01:00
|
|
|
#!/usr/bin/perl
|
|
|
|
# Parses list of remotes in doc/git.mdwn, configures git to use them
|
2009-12-07 20:44:50 +01:00
|
|
|
# all. After running this, use "git remote update --prune" to pull
|
|
|
|
# updates from all remotes.
|
2008-12-11 19:27:50 +01:00
|
|
|
|
|
|
|
open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
|
|
|
|
while (<IN>) {
|
2009-05-21 20:35:04 +02:00
|
|
|
if (/^\*\s+\[?\[?(\w+)(?:\|\w+)?\]?\]?\s+`([^>]+)`/) {
|
2008-12-11 19:27:50 +01:00
|
|
|
# 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");
|
2010-05-09 17:44:47 +02:00
|
|
|
system("git", "remote", "add", $remote, $url);
|
2010-05-07 18:46:21 +02:00
|
|
|
system("git", "config", "remote.$remote.tagopt",
|
|
|
|
"--no-tags");
|
2010-05-09 17:44:47 +02:00
|
|
|
system("git", "fetch", $remote);
|
2008-12-11 19:27:50 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
close IN;
|