scripts/feeds: add support for installing targets
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 44781
This commit is contained in:
		| @@ -366,6 +366,30 @@ sub do_install_package($$) { | ||||
| 	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($$) { | ||||
| 	my $feed = shift; | ||||
| 	my $package = shift; | ||||
| @@ -378,6 +402,18 @@ sub lookup_package($$) { | ||||
| 	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($) { | ||||
| 	my $package = shift; | ||||
| 	foreach my $file ("tmp/info/.packageinfo-$package", glob("tmp/info/.packageinfo-*_$package")) { | ||||
| @@ -387,12 +423,33 @@ sub is_core_package($) { | ||||
| 	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 { | ||||
| 	my $feed = shift; | ||||
| 	my $name = shift; | ||||
| 	my $force = shift; | ||||
| 	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 or do { | ||||
| 		$installed{$name} and return 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau