summaryrefslogtreecommitdiff
path: root/lib/VNDB/Skins.pm
blob: 09df652fe9fae9b08de2bbf3b1e6cb2b8df4d7bc (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
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 = /\/([^\/]+)\.sass/ ? $1 : die;
        my %o;
        open my $F, '<:utf8', $_ or die $!;
        if(<$F> !~ qr{^// *userid: *([0-9]+) *name: *(.+)}) {
            warn "Invalid skin: $skin\n";
            ()
        } else {
            +( $skin, { userid => $1, name => $2 })
        }
    } glob "$ROOT/css/skins/*.sass" } };
    $skins;
}

1;