projects
/
openwrt
/
staging
/
yousong.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c514c50
)
scripts/feeds: allow multiple alternative urls for a single feed. this will be useful...
author
Felix Fietkau
<nbd@openwrt.org>
Sat, 27 Sep 2008 22:57:58 +0000
(22:57 +0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Sat, 27 Sep 2008 22:57:58 +0000
(22:57 +0000)
SVN-Revision: 12746
scripts/feeds
patch
|
blob
|
history
diff --git
a/scripts/feeds
b/scripts/feeds
index 099468a8f73cc11adae0bf879455ef22c05ae41e..ab765b1ea38e20c8638bf6e3e35e87ff480cb9dc 100755
(executable)
--- a/
scripts/feeds
+++ b/
scripts/feeds
@@
-31,18
+31,19
@@
sub parse_config() {
s/#.+$//;
next unless /\S/;
my @line = split /\s+/, $_, 3;
s/#.+$//;
next unless /\S/;
my @line = split /\s+/, $_, 3;
+ my @src;
$line++;
my $valid = 1;
$line[0] =~ /^src-\w+$/ or $valid = 0;
$line[1] =~ /^\w+$/ or $valid = 0;
$line++;
my $valid = 1;
$line[0] =~ /^src-\w+$/ or $valid = 0;
$line[1] =~ /^\w+$/ or $valid = 0;
-
$line[2] =~ /\s/ and $valid = 0
;
+
@src = split /\s+/, $line[2]
;
$valid or die "Syntax error in feeds.list, line: $line\n";
$name{$line[1]} and die "Duplicate feed name '$line[1]', line: $line\n";
$name{$line[1]} = 1;
$valid or die "Syntax error in feeds.list, line: $line\n";
$name{$line[1]} and die "Duplicate feed name '$line[1]', line: $line\n";
$name{$line[1]} = 1;
- push @feeds, [
@line
];
+ push @feeds, [
$line[0], $line[1], \@src
];
}
close FEEDS;
}
}
close FEEDS;
}
@@
-192,7
+193,7
@@
sub list {
}
if ($opts{s}) {
foreach my $feed (@feeds) {
}
if ($opts{s}) {
foreach my $feed (@feeds) {
- printf "\%-32s\tURL: %s\n", $feed->[1],
$feed->[2]
;
+ printf "\%-32s\tURL: %s\n", $feed->[1],
join(", ", @{$feed->[2]})
;
}
return 0;
}
}
return 0;
}
@@
-419,8
+420,14
@@
sub update_feed($$$$)
return 1;
};
$perform_update and do {
return 1;
};
$perform_update and do {
- warn "Updating feed '$name' from '$src' ...\n";
- &{$update_method{$type}}($name, $src) == 0 or do {
+ my $failed = 1;
+ foreach my $feedsrc (@$src) {
+ warn "Updating feed '$name' from '$feedsrc' ...\n";
+ next unless &{$update_method{$type}}($name, $feedsrc) == 0;
+ $failed = 0;
+ last;
+ }
+ $failed and do {
warn "failed.\n";
return 1;
};
warn "failed.\n";
return 1;
};