scripts: case insensitive sort device names
authorKarl Palsson <karlp@etactica.com>
Wed, 12 Oct 2016 13:51:23 +0000 (13:51 +0000)
committerJohn Crispin <john@phrozen.org>
Sat, 15 Oct 2016 09:36:51 +0000 (11:36 +0200)
When selecting devices from the Target Devices menu, the brand choices
of naming makes it confusing to find particular devices by name, as the
sorting is case sensitve.  AirTight came after ALFA, and devolo and
jjPlus both came after Zyxel.

This does _not_ apply to the Target Profile list, as that includes
"Default - all profiles" inside the profile list.

Signed-off-by: Karl Palsson <karlp@etactica.com>
scripts/target-metadata.pl

index 3422572..7f7dc6d 100755 (executable)
@@ -276,8 +276,12 @@ menu "Target Devices"
 
 EOF
        foreach my $target (@target) {
-               my $profiles = $target->{profiles};
-               foreach my $profile (@{$target->{profiles}}) {
+               my @profiles = sort {
+                       my $x = $a->{name};
+                       my $y = $b->{name};
+                       "\L$x" cmp "\L$y";
+               } @{$target->{profiles}};
+               foreach my $profile (@profiles) {
                        next unless $profile->{id} =~ /^DEVICE_/;
                        print <<EOF;
 menuconfig TARGET_DEVICE_$target->{conf}_$profile->{id}