summaryrefslogtreecommitdiff
path: root/lib/WebCoso/Maker.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2015-09-11 15:32:51 +0100
committerdakkar <dakkar@thenautilus.net>2015-09-11 15:32:51 +0100
commitdf354d91e7e315b839d5c292e386e64ca339cb07 (patch)
tree476314347374acc122848a6d0202fb137aba225f /lib/WebCoso/Maker.pm
parentfix deps out-of-date comparison (diff)
downloadWebCoso-p6-df354d91e7e315b839d5c292e386e64ca339cb07.tar.gz
WebCoso-p6-df354d91e7e315b839d5c292e386e64ca339cb07.tar.bz2
WebCoso-p6-df354d91e7e315b839d5c292e386e64ca339cb07.zip
filesets! don't work
I think I'm trying to be too clever, merging "these files make up a document, a file per language" with "these files are needed to build a result file in a certain language". Those should probably be separate classes.
Diffstat (limited to 'lib/WebCoso/Maker.pm')
-rw-r--r--lib/WebCoso/Maker.pm37
1 files changed, 20 insertions, 17 deletions
diff --git a/lib/WebCoso/Maker.pm b/lib/WebCoso/Maker.pm
index 02e1a18..bcf759b 100644
--- a/lib/WebCoso/Maker.pm
+++ b/lib/WebCoso/Maker.pm
@@ -24,40 +24,43 @@ role WebCoso::Maker[$from,$to] {
return $.wc.load-deps($.dir,$.basename,$to);
}
- method set-deps(%deps) {
- $.wc.save-deps($.dir,$.basename,$to,%deps);
+ method set-deps($deps) {
+ $.wc.save-deps($.dir,$.basename,$to,$deps);
}
method make() {
say "Maker[$from,$to]($.dir/$.basename)::make";
- my %srcs = $.src-files();
- my %dsts = $.dest-files();
- my %deps = $.dep-files();
+ my $srcs = $.src-files();
+ my $dsts = $.dest-files();
+ my $deps = $.dep-files();
- say "Maker[$from,$to]($.dir/$.basename)::make from {%srcs.perl} and {%deps.perl} to {%dsts.perl}";
+ say "Maker[$from,$to]($.dir/$.basename)::make from {$srcs.perl} and {$deps.perl} to {$dsts.perl}";
- for %srcs.keys -> $lang {
- my $src = %srcs{$lang};
- my $dst = %dsts{$lang};
- my @deps = %deps{$lang} // ();
+ for $srcs.langs -> $lang {
+ my $src = $srcs.for-lang($lang)[0];
+ my $dst = $dsts.for-lang($lang)[0];
+ my @deps = $deps.for-lang($lang);
say "Maker[$from,$to]($.dir/$.basename)::make lang $lang";
say "Maker[$from,$to]($.dir/$.basename)::make dst modified {$dst ?? $dst.modified !! 'not-there'} src modified {$src.modified} deps modified {@deps».modified}";
- next if $dst and not ($dst.modified <=
- all($src.modified,@deps».modified.flat));
+ next if $dst and $dst.modified >=
+ all($src.modified,@deps».modified.flat);
say "Maker[$from,$to]($.dir/$.basename)::make processing $lang";
my ($processed-contents,@new_deps) = self.process-contents(
$src,
);
- %dsts{$lang} = $.wc.put-file($.dir,$.basename,$lang,$to,
- $processed-contents);
- %deps{$lang} = @new_deps
+ $dsts.set-for-lang(
+ $lang,
+ $.wc.put-file($.dir,$.basename,$lang,$to,
+ $processed-contents),
+ );
+ $deps.set-for-lang($lang,@new_deps)
if @new_deps;
}
- $.set-deps(%deps);
+ $.set-deps($deps);
- return %dsts;
+ return $dsts;
}
}