summaryrefslogtreecommitdiff
path: root/lib/WebCoso.pm
blob: 520274573fba8d35d7b5d3c5b95283fb4c64357d (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
37
38
# -*- mode: perl6 -*- 
class WebCoso {
    has $.srcdir;
    has $.destdir;
    has $!tmpdir = $*SPEC.tmpdir.child('abcde');
    has @!docs;
 
    method get-files($dir,$basename,$ext) {
        my %files = gather {
            for my $base ($.srcdir,$!tmpdir) {
                my @files = $base.child($dir).dir(
                    test => /$basename \. .+? \. $ext/,
                );
                take map {
                    (.name ~~ /$basename \. (.+?) \. $ext/)[0]
                    =>
                    $_
                @files;
            }
        }
        return %files;
    }
 
    method put-file($dir,$basename,$lang,$ext,$contents) {
        $!tmpdir.child($dir).child("${basename}.${lang}.${ext}").spurt($contents);
        return;
    }
 
    method new-doc(:$dir) {
        @!docs.push(Document.new(:$dir,wc=>self);
    }
    method new-feed(:$dir) {
        @!docs.push(Feed.new(:$dir,wc=>self);
    }
    method run() {
        .make() for @!docs;
    }
}