#!/usr/bin/perl use strict; use warnings; use File::Temp qw/tempdir/; use Verby::Dispatcher; use Verby::Step::Closure qw/step/; use Verby::Config::Data; use File::Basename; my $cfg = Verby::Config::Data->new; %{ $cfg->data } = ( project_root => my $out_dir = tempdir(CLEANUP => 1), company_name => "Beer rocks!", perl_module_namespace => "Acme::Møøse", project_url => "http://goatse.cx", database => { dsn => "dbi:moose", username => "", password => "", }, demographics => [ ], ); my $tmpl_dir = "EERS_demo/templates"; my %by_dir = ( conf => [qw/httpd.conf startup.pl startup.xml/], "perl/foo" => [qw/main.pm/], ); my $d = Verby::Dispatcher->new; $d->config_hub($cfg); foreach my $dir (keys %by_dir){ foreach my $file (@{ $by_dir{$dir} }){ my $in = "$tmpl_dir/$file"; my $out = "$out_dir/$dir/$file"; my $t = step "Verby::Action::Template" => sub { my $c = $_[1]; $c->template($in); $c->output($out); }; my $path = dirname($out); $t->depends(step "Verby::Action::MkPath" => sub { $_[1]->path($path) }); $d->add_step($t); } } $d->do_all; __END__ =pod =head1 NAME =head1 SYNOPSIS =head1 DESCRIPTION =head1 AUTHOR Yuval Kogman, Enothingmuch@woobling.orgE =head1 COPYRIGHT AND LICENSE Copyright 2005-2008 by Infinity Interactive, Inc. L This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut