projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
scripts/feeds: allow multiple alternative urls for a single feed. this will be useful...
[openwrt.git]
/
scripts
/
feeds
diff --git
a/scripts/feeds
b/scripts/feeds
index
6b09f7e
..
ab765b1
100755
(executable)
--- a/
scripts/feeds
+++ b/
scripts/feeds
@@
-23,24
+23,27
@@
sub parse_config() {
my $line = 0;
my %name;
my $line = 0;
my %name;
- open FEEDS, "feeds.conf";
+ open FEEDS, "feeds.conf" or
+ open FEEDS, "feeds.conf.default" or
+ die "Unable to open feeds configuration";
while (<FEEDS>) {
chomp;
s/#.+$//;
next unless /\S/;
my @line = split /\s+/, $_, 3;
while (<FEEDS>) {
chomp;
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;
}
@@
-100,7
+103,7
@@
sub update_git($$) {
system("GIT_DIR=./feeds/$name/.git git pull") == 0 or return 1;
} else {
system("rm -rf \"./feeds/$name\"");
system("GIT_DIR=./feeds/$name/.git git pull") == 0 or return 1;
} else {
system("rm -rf \"./feeds/$name\"");
- system("git
-
clone --depth 1 $src ./feeds/$name") == 0 or return 1;
+ system("git
clone --depth 1 $src ./feeds/$name") == 0 or return 1;
}
return 0;
}
return 0;
@@
-190,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;
}
@@
-284,7
+287,7
@@
sub install_package {
};
# install all dependencies
};
# install all dependencies
- foreach my $vpkg (@{$srcpackage{$src}}) {
+ foreach my $vpkg (@{$srcpackage{$src}}
, $pkg
) {
foreach my $dep (@{$vpkg->{depends}}, @{$vpkg->{builddepends}}) {
next if $dep =~ /@/;
$dep =~ s/^\+//;
foreach my $dep (@{$vpkg->{depends}}, @{$vpkg->{builddepends}}) {
next if $dep =~ /@/;
$dep =~ s/^\+//;
@@
-417,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;
};
This page took
0.021415 seconds
and
4
git commands to generate.