scripts/feeds: add support for installing targets
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 44781
This commit is contained in:
parent
797b0459c4
commit
2484f3a86a
1 changed files with 57 additions and 0 deletions
|
@ -366,6 +366,30 @@ sub do_install_package($$) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub do_install_target($) {
|
||||||
|
my $target = shift;
|
||||||
|
my $path = $target->{makefile};
|
||||||
|
|
||||||
|
if ($path) {
|
||||||
|
$path =~ s/\/Makefile$//;
|
||||||
|
my $name = $path;
|
||||||
|
$name =~ s/.*\///;
|
||||||
|
my $dest = "./target/linux/$name";
|
||||||
|
|
||||||
|
-e $dest and do {
|
||||||
|
warn "Path $dest already exists";
|
||||||
|
return 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
system("ln -sf ../../$path ./target/linux/");
|
||||||
|
} else {
|
||||||
|
warn "Package is not valid\n";
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
sub lookup_package($$) {
|
sub lookup_package($$) {
|
||||||
my $feed = shift;
|
my $feed = shift;
|
||||||
my $package = shift;
|
my $package = shift;
|
||||||
|
@ -378,6 +402,18 @@ sub lookup_package($$) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub lookup_target($$) {
|
||||||
|
my $feed = shift;
|
||||||
|
my $target = shift;
|
||||||
|
|
||||||
|
foreach my $feed ($feed, @feeds) {
|
||||||
|
next unless $feed->[1];
|
||||||
|
next unless $feed_cache{$feed->[1]};
|
||||||
|
$feed_cache{$feed->[1]}->[2]->{$target} and return $feed;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
sub is_core_package($) {
|
sub is_core_package($) {
|
||||||
my $package = shift;
|
my $package = shift;
|
||||||
foreach my $file ("tmp/info/.packageinfo-$package", glob("tmp/info/.packageinfo-*_$package")) {
|
foreach my $file ("tmp/info/.packageinfo-$package", glob("tmp/info/.packageinfo-*_$package")) {
|
||||||
|
@ -387,12 +423,33 @@ sub is_core_package($) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub install_target {
|
||||||
|
my $feed = shift;
|
||||||
|
my $name = shift;
|
||||||
|
|
||||||
|
$feed = $feed_cache{$feed->[1]}->[2];
|
||||||
|
$feed or return 0;
|
||||||
|
|
||||||
|
my $target = $feed->{$name};
|
||||||
|
$target or return 0;
|
||||||
|
|
||||||
|
warn "Installing target '$name'\n";
|
||||||
|
return do_install_target($target);
|
||||||
|
}
|
||||||
|
|
||||||
sub install_package {
|
sub install_package {
|
||||||
my $feed = shift;
|
my $feed = shift;
|
||||||
my $name = shift;
|
my $name = shift;
|
||||||
my $force = shift;
|
my $force = shift;
|
||||||
my $ret = 0;
|
my $ret = 0;
|
||||||
|
|
||||||
|
$feed = lookup_target($feed, $name);
|
||||||
|
$feed and do {
|
||||||
|
$installed_targets{$name} and return 0;
|
||||||
|
install_target($feed, $name);
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
$feed = lookup_package($feed, $name);
|
$feed = lookup_package($feed, $name);
|
||||||
$feed or do {
|
$feed or do {
|
||||||
$installed{$name} and return 0;
|
$installed{$name} and return 0;
|
||||||
|
|
Loading…
Reference in a new issue