summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/target.mk2
-rwxr-xr-xscripts/metadata.pl4
-rw-r--r--scripts/metadata.pm7
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");