summaryrefslogtreecommitdiff
path: root/bin/make-mimetypes
blob: 64c91200aeb7bfba8d8a42ca6054feed007b7eb5 (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
30
31
32
33
34
35
36
#!/usr/bin/env perl6

use v6.c;

sub MAIN (
        Str:D :$default = "application/octet-stream",
) {
    my IO::Path $mime-types = "/etc/mime.types".IO;

    die "No $mime-types.absolute()" unless $mime-types.f;

    my %types;

    for $mime-types.lines -> $line {
        my ($mimetype, @extensions) = $line.words;

        for @extensions -> $extension {
            %types{$extension} = $mimetype;
        }
    }

    print-conf(%types, $default);
}

sub print-conf (
        %mimetypes,
        Str:D $default,
) {
    say "mimetype.assign = (";

    for %mimetypes.kv -> $extension, $type {
        say "\t\".$extension\" => \"$type\",";
    }

    say "\"\" => \"$default\"\n)";
}