aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@luxion>2008-01-03 19:08:42 +0000
committerdakkar <dakkar@luxion>2008-01-03 19:08:42 +0000
commitb197980ccf32cad9f2e93a8632526e0f87b8fb44 (patch)
treec14afa025932e6ca76e363f63d5d9ee2863a4c52
parentbetter-looking output (diff)
downloadWebCoso-b197980ccf32cad9f2e93a8632526e0f87b8fb44.tar.gz
WebCoso-b197980ccf32cad9f2e93a8632526e0f87b8fb44.tar.bz2
WebCoso-b197980ccf32cad9f2e93a8632526e0f87b8fb44.zip
minor cleanings
git-svn-id: svn://luxion/repos/WebCoso/trunk@324 fcb26f47-9200-0410-b104-b98ab5b095f3
-rw-r--r--webcoso.pl195
1 files changed, 135 insertions, 60 deletions
diff --git a/webcoso.pl b/webcoso.pl
index c834769..3552974 100644
--- a/webcoso.pl
+++ b/webcoso.pl
@@ -345,69 +345,144 @@ if ($CLEAN) {
exit 0;
}
-my $maker1st=Slay::Maker->new({
- rules => [
- ["$SRCPATH/tags/(**)/document.(*).rest.txt",':',"$SRCPATH/_webcoso/tags.yml",ifExists("$SRCPATH/tags/\$1/document.\$2.rest.tt"),'=',\&expandTT],
- ["$SRCPATH/tags/(**)/document.(*).du.xml",':',"$SRCPATH/_webcoso/tags.yml",ifExists("$SRCPATH/tags/\$1/document.\$2.rest.txt"),'=',\&parseRST],
- ["$SRCPATH/(**)/document.(*).rest.txt",':',ifExists("$SRCPATH/\$1/document.\$2.rest.tt"),'=',\&expandTT],
- ["$SRCPATH/(**)/document.(*).du.xml",':',ifExists("$SRCPATH/\$1/document.\$2.rest.txt"),'=',\&parseRST],
- ["$SRCPATH/()document.(*).rest.txt",':',ifExists("$SRCPATH/document.\$2.rest.tt"),'=',\&expandTT],
- ["$SRCPATH/()document.(*).du.xml",':',ifExists("$SRCPATH/document.\$2.rest.txt"),'=',\&parseRST],
- ["$SRCPATH/_webcoso/tags.yml",':',fromTo($SRCPATH,{%docfiles,transform=>sub{typedAs($_[0],'du.xml')}}),'=',\&getTags],
- #["$SRCPATH/_webcoso/changes.xml",':',keepEarliest(fromTo($SRCPATH,{%docfiles})),'=',\&getChanges],
- ],
+my %maker_opts=(
options => {
auto_create_dirs => 1,
#debug => 1,
},
-});
+);
-my $maker2nd=Slay::Maker->new({
- rules => [
- ["$DSTPATH/tags/(**)/document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/tags/\$1/document.\$2.du.xml",'=',\&du2html],
- ["$DSTPATH/(**)/document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/\$1/document.\$2.du.xml",'=',\&du2html],
- ["$DSTPATH/()document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/document.\$2.du.xml",'=',\&du2html],
- ],
- options => {
- auto_create_dirs => 1,
- #debug => 1,
- },
-});
+my @passes=(
+ {maker=>Slay::Maker->new({
+ rules => [
+
+ # tags : must come first, otherwise tha "tags" directory will
+ # be taken as a normal document directory
+
+ ["$SRCPATH/tags/(**)/document.(*).rest.txt",
+ ':',
+ "$SRCPATH/_webcoso/tags.yml",
+ ifExists("$SRCPATH/tags/\$1/document.\$2.rest.tt"),
+ '=',
+ \&expandTT],
+ ["$SRCPATH/tags/(**)/document.(*).du.xml",
+ ':',
+ "$SRCPATH/_webcoso/tags.yml",
+ ifExists("$SRCPATH/tags/\$1/document.\$2.rest.txt"),
+ '=',
+ \&parseRST],
+
+ # normal documents, in subdirs
+
+ ["$SRCPATH/(**)/document.(*).rest.txt",
+ ':',
+ ifExists("$SRCPATH/\$1/document.\$2.rest.tt"),
+ '=',
+ \&expandTT],
+ ["$SRCPATH/(**)/document.(*).du.xml",
+ ':',
+ ifExists("$SRCPATH/\$1/document.\$2.rest.txt"),
+ '=',
+ \&parseRST],
+
+ # normal documents, in top dir
+
+ ["$SRCPATH/()document.(*).rest.txt",
+ ':',
+ ifExists("$SRCPATH/document.\$2.rest.tt"),
+ '=',
+ \&expandTT],
+ ["$SRCPATH/()document.(*).du.xml",
+ ':',
+ ifExists("$SRCPATH/document.\$2.rest.txt"),
+ '=',
+ \&parseRST],
+
+ # tags from normal documents (tag documents can't be tagged!)
+
+ ["$SRCPATH/_webcoso/tags.yml",
+ ':',
+ fromTo($SRCPATH,
+ {
+ %docfiles,
+ transform=>sub{typedAs($_[0],'du.xml')}
+ }),
+ '=',
+ \&getTags],
+
+ # changes (currently unimplemented)
+
+ ["$SRCPATH/_webcoso/changes.xml",
+ ':',
+ keepEarliest(fromTo($SRCPATH,{%docfiles})),
+ '=',
+ \&getChanges],
+ ],
+ %maker_opts,
+ }),
+ targets=>[
+ fromTo("$SRCPATH/",
+ {
+ %docfiles,
+ transform=>sub{typedAs($_[0],'du.xml')},
+ }),
+ fromTo("$SRCPATH/tags/",
+ {
+ %docfiles,
+ transform=>sub{typedAs($_[0],'du.xml')},
+ })]},
+ {maker=>Slay::Maker->new({
+ rules => [
+
+ # tags : must come first, otherwise tha "tags" directory will
+ # be taken as a normal document directory
+
+ ["$DSTPATH/tags/(**)/document.(*).html",
+ ':',
+ "$SRCPATH/_webcoso/tags.yml",
+ "$SRCPATH/tags/\$1/document.\$2.du.xml",
+ '=',
+ \&du2html],
+
+ # normal documents, in subdirs
+
+ ["$DSTPATH/(**)/document.(*).html",
+ ':',
+ "$SRCPATH/_webcoso/tags.yml",
+ "$SRCPATH/\$1/document.\$2.du.xml",
+ '=',
+ \&du2html],
+
+ # normal documents, in top dir
+
+ ["$DSTPATH/()document.(*).html",
+ ':',
+ "$SRCPATH/_webcoso/tags.yml",
+ "$SRCPATH/document.\$2.du.xml",
+ '=',
+ \&du2html],
+ ],
+ %maker_opts,
+ }),
+ targets=>[fromTo("$SRCPATH/",
+ {
+ %docfiles,
+ transform=>sub{
+ (my $file=typedAs($_[0],'html'))
+ =~s{^\Q$SRCPATH\E/}{$DSTPATH/};
+ return $file;
+ },
+ }),
+ fromTo("$SRCPATH/tags/",
+ {
+ %docfiles,
+ transform=>sub{
+ (my $file=typedAs($_[0],'html'))
+ =~s{^\Q$SRCPATH\E/tags/}{$DSTPATH/tags/};
+ return $file;
+ },
+ })]},
+);
+
+$_->{maker}->make(@{$_->{targets}}) for @passes;
-my @targets1st=(fromTo("$SRCPATH/",
- {
- %docfiles,
- transform=>sub{typedAs($_[0],'du.xml')},
- }),
- fromTo("$SRCPATH/tags/",
- {
- %docfiles,
- transform=>sub{typedAs($_[0],'du.xml')},
- }));
-
-my @targets2nd=(fromTo("$SRCPATH/",
- {
- %docfiles,
- transform=>sub{
- my $src=shift;
- $src=typedAs($src,'html');
- $src=~s{^\Q$SRCPATH\E/}{$DSTPATH/};
- return $src;
- },
- }),
- fromTo("$SRCPATH/tags/",
- {
- %docfiles,
- transform=>sub{
- my $src=shift;
- $src=typedAs($src,'html');
- $src=~s{^\Q$SRCPATH\E/tags/}{$DSTPATH/tags/};
- return $src;
- },
- }));
-
-print "targets 1st: @targets1st\n";
-$maker1st->make(@targets1st);
-
-print "targets 2nd: @targets2nd\n";
-$maker2nd->make(@targets2nd);