View | Details | Raw Unified | Return to bug 30385
Collapse All | Expand All

(-)a/sort_yaml.pl (-1 / +35 lines)
Line 0 Link Here
0
- 
1
use Modern::Perl;
2
3
use List::MoreUtils qw( uniq duplicates );
4
use YAML;
5
use File::Slurp qw( write_file );
6
7
my @files = qx{ls api/v1/**/**/*.yaml};
8
for my $file ( @files ) {
9
    chomp $file;
10
    say "Processing $file";
11
    my $hash = YAML::LoadFile($file);
12
13
    ss($hash);
14
    my $yaml = YAML::Dump($hash);
15
    $yaml =~ s|-\snull|- "null"|xmsg;
16
    write_file($file, $yaml);
17
}
18
19
sub ss {
20
    my ($hash) = @_;
21
    return unless ref($hash);
22
    return if ref($hash) eq "ARRAY";
23
    for my $k ( keys %$hash ) {
24
        ss($hash->{$k});
25
    }
26
    my @sorted_keys = qw( swagger basePath definitions paths info x-mojo-to operationId tags summary produces parameters responses x-koha-authorization);
27
    push @sorted_keys, qw( description type properties additionalProperties );
28
    my @existing_keys = sort keys %$hash;
29
    my @dup = duplicates( @sorted_keys, @existing_keys );
30
    my @uniq = uniq( @dup, @existing_keys );
31
    push @dup, @uniq;
32
    @dup = uniq( @dup );
33
34
    YAML::Bless($hash)->keys(\@dup);
35
}

Return to bug 30385