blob: bcee005c3308090a694f143ccc275e5c7669d108 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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+)(?:\|\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", "--no-tag", $remote);
}
}
}
close IN;
exit $error;
|