mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	metadata.pl: add support for forcing sorting of profiles
Used to mix device profiles (specified in the image makefile) with regular target profiles. Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		
							parent
							
								
									87550a0e87
								
							
						
					
					
						commit
						1189af85fd
					
				@ -59,6 +59,7 @@ extra_packages = $(if $(filter wpad-mini wpad nas,$(1)),iwinfo)
 | 
			
		||||
 | 
			
		||||
define ProfileDefault
 | 
			
		||||
  NAME:=
 | 
			
		||||
  PRIORITY:=
 | 
			
		||||
  PACKAGES:=
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
@ -70,6 +71,7 @@ define Profile
 | 
			
		||||
  dumpinfo : $(call shexport,Profile/$(1)/Description)
 | 
			
		||||
  DUMPINFO += \
 | 
			
		||||
	echo "Target-Profile: $(1)"; \
 | 
			
		||||
	$(if $(PRIORITY), echo "Target-Profile-Priority: $(PRIORITY)"; ) \
 | 
			
		||||
	echo "Target-Profile-Name: $(NAME)"; \
 | 
			
		||||
	echo "Target-Profile-Packages: $(PACKAGES) $(call extra_packages,$(DEFAULT_PACKAGES) $(PACKAGES))"; \
 | 
			
		||||
	if [ -f ./config/profile-$(1) ]; then \
 | 
			
		||||
 | 
			
		||||
@ -282,6 +282,10 @@ EOF
 | 
			
		||||
 | 
			
		||||
	foreach my $target (@target) {
 | 
			
		||||
		my $profiles = $target->{profiles};
 | 
			
		||||
		$target->{sort} and @$profiles = sort {
 | 
			
		||||
			$a->{priority} <=> $b->{priority} or
 | 
			
		||||
			$a->{name} cmp $b->{name};
 | 
			
		||||
		} @$profiles;
 | 
			
		||||
 | 
			
		||||
		foreach my $profile (@$profiles) {
 | 
			
		||||
			print <<EOF;
 | 
			
		||||
 | 
			
		||||
@ -84,11 +84,16 @@ sub parse_target_metadata($) {
 | 
			
		||||
			$profile = {
 | 
			
		||||
				id => $1,
 | 
			
		||||
				name => $1,
 | 
			
		||||
				priority => 999,
 | 
			
		||||
				packages => []
 | 
			
		||||
			};
 | 
			
		||||
			push @{$target->{profiles}}, $profile;
 | 
			
		||||
		};
 | 
			
		||||
		/^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1;
 | 
			
		||||
		/^Target-Profile-Name:\s*(.+)\s*$/ and do {
 | 
			
		||||
			$target->{sort} = 1;
 | 
			
		||||
			$profile->{name} = $1;
 | 
			
		||||
		};
 | 
			
		||||
		/^Target-Profile-Priority:\s*(\d+)\s*$/ and $profile->{priority} = $1;
 | 
			
		||||
		/^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ];
 | 
			
		||||
		/^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(*FILE);
 | 
			
		||||
		/^Target-Profile-Config:/ and $profile->{config} = get_multiline(*FILE, "\t");
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user