From b197980ccf32cad9f2e93a8632526e0f87b8fb44 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 3 Jan 2008 19:08:42 +0000 Subject: minor cleanings git-svn-id: svn://luxion/repos/WebCoso/trunk@324 fcb26f47-9200-0410-b104-b98ab5b095f3 --- webcoso.pl | 195 ++++++++++++++++++++++++++++++++++++++++++------------------- 1 file 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); -- cgit v1.2.3