summaryrefslogtreecommitdiff
path: root/lib/WebCoso.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/WebCoso.pm')
-rw-r--r--lib/WebCoso.pm44
1 files changed, 28 insertions, 16 deletions
diff --git a/lib/WebCoso.pm b/lib/WebCoso.pm
index 6e3da7e..57818d5 100644
--- a/lib/WebCoso.pm
+++ b/lib/WebCoso.pm
@@ -10,32 +10,44 @@ class WebCoso {
has %!docs;
method get-src-files($dir,$basename,$ext) {
- return try {
- CATCH { when X::IO { } }
- ( $dir ?? $.srcdir.child($dir) !! $.srcdir ).dir(
- test => /$basename \. .+? \. $ext/,
- );
- } // ();
+ say "WebCoso($.srcdir,$.destdir,$!tmpdir)::get-src-files($dir,$basename,$ext)";
+ my @files = gather {
+ for $.srcdir,$!tmpdir -> $base {
+ take $_ for try {
+ CATCH { when X::IO { } }
+ ( $dir ?? $base.child($dir) !! $base ).dir(
+ test => /$basename \. .+? \. $ext/,
+ )
+ } // ();
+ }
+ }
+ say "WebCoso($.srcdir,$.destdir,$!tmpdir)::get-src-files($dir,$basename,$ext) files = {@files.perl}";
+ return (
+ map {
+ (.basename ~~ /$basename \. (.+?) \. $ext/)[0]
+ =>
+ $_
+ }, @files
+ ).values;
}
method get-made-files($dir,$basename,$ext) {
+ say "WebCoso($.srcdir,$.destdir,$!tmpdir)::get-made-files($dir,$basename,$ext)";
if %!docs{$dir}{$basename} -> $doc {
- return $doc.get-files-by-ext($ext)
+ say "WebCoso($.srcdir,$.destdir,$!tmpdir)::get-made-files($dir,$basename,$ext) at $doc";
+ return $doc.make-by-ext($ext)
}
- return;
+ return ();
}
- method get-files($dir,$basename,$ext) {
- my @files = self.get-src-files($dir,$basename,$ext) // self.get-made-files($dir,$basename,$ext);
-
- return map {
- (.basename ~~ /$basename \. (.+?) \. $ext/)[0]
- =>
- $_
- }, @files;
+ method get-files($dir,$basename,$ext,:$make=True) {
+ say "WebCoso($.srcdir,$.destdir,$!tmpdir)::get-files($dir,$basename,$ext,$make)";
+ return self.get-src-files($dir,$basename,$ext) ||
+ ( $make ?? self.get-made-files($dir,$basename,$ext) !! () );
}
method put-file($dir,$basename,$lang,$ext,$contents) {
+ say "WebCoso($.srcdir,$.destdir,$!tmpdir)::put-file($dir,$basename,$lang,$ext)";
my $t = ($dir ?? $!tmpdir.child($dir) !! $!tmpdir);
$t.mkdir;
my $f = $t.child("{$basename}.{$lang}.{$ext}");