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 3422572d1639ab2b57454a64330be4afb1f28506..7f7dc6d4ee77efdb814bd54a0836e6d927f0efee 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}