summaryrefslogtreecommitdiff
path: root/lib/VNDB/Skins.pm
blob: a07160245b53c4443058d469415110fe33ba2e3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package VNDB::Skins;

use v5.26;
use warnings;
use Exporter 'import';
our @EXPORT = ('skins');

my $ROOT = $INC{'VNDB/Skins.pm'} =~ s{/lib/VNDB/Skins\.pm$}{}r;

my $skins;

sub skins {
    $skins ||= do { +{ map {
        my $skin = /\/([^\/]+)\/conf/ ? $1 : die;
        my %o;
        open my $F, '<:utf8', $_ or die $!;
        while(<$F>) {
            chomp;
            s/\r//g;
            s{[\t\s]*//.+$}{};
            next if !/^([a-z0-9]+)[\t\s]+(.+)$/;
            $o{$1} = $2;
        }
        +( $skin, \%o )
    } glob "$ROOT/static/s/*/conf" } };
    $skins;
}

1;