From 3f439cd25065e13ac487efc68538f56a6b5f8f1e Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 6 Sep 2015 15:27:50 +0100 Subject: deps almost working --- lib/WebCoso.pm | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) (limited to 'lib/WebCoso.pm') 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}"); -- cgit v1.2.3