diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/metadata.pl | 4 | ||||
-rw-r--r-- | scripts/metadata.pm | 7 |
2 files changed, 10 insertions, 1 deletions
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"); |