diff options
-rw-r--r-- | include/target.mk | 2 | ||||
-rwxr-xr-x | scripts/metadata.pl | 4 | ||||
-rw-r--r-- | scripts/metadata.pm | 7 |
3 files changed, 12 insertions, 1 deletions
diff --git a/include/target.mk b/include/target.mk index 817901f..f4342bd 100644 --- a/include/target.mk +++ b/include/target.mk @@ -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 \ diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 410fa9f..f5afb1e 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -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; diff --git a/scripts/metadata.pm b/scripts/metadata.pm index 1891c0a..3b75621 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -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"); |