App-Dothe
view release on metacpan or search on metacpan
lib/App/Dothe.pm view on Meta::CPAN
- /home/yanick/work/blog_entries/**/entry
foreach: sources
cmds:
- task: import
vars: { dir: '{{ path($item)->parent }}' }
=head2 C<vars> section
Takes a hash of variable names and values. Those are variables that will be accessible to all
tasks.
E.g.,
vars:
entries_file: ./content/_shared/entries.md
blog_entries_root: /home/yanick/work/blog_entries
=head2 C<tasks> section
Takes a hash of task names and their definitions.
E.g.,
tasks:
something:
sources: [ ./src/foo.source ]
generates: [ ./dest/foo.dest ]
foreach: sources
cmds:
- ./tools/process_entry.pl {{$item}}
=head3 C<task>
Defines a specific task.
=head4 C<vars>
Hash of variable names and values to be made accessible to the
task and its subtasks.
Variable values can be templates, which have visibility of
previously declared variables.
A locally defined variable will mask the definition of a global
variable.
=head4 C<deps>
Array of task dependencies. If present, Dothe will build the graph
of dependencies (via L<Graph::Directed>) and run them in their
topological order.
deploy:
deps: [ clean, build, test ]
cmds:
- dzil release
=head4 C<sources>
Array of files. Can take glob patterns that will be expanded using
L<Path::Tiny::Glob>. The result is accessible via the C<sources> variable.
foo:
sources: [ './lib/**/*.pm' ]
foreach: sources
cmds:
- perl -c {{$item}}
=head4 C<generates>
Array of files. If C<sources> and C<generates> are both given, the task will
only be run if any of the sources (or the F<Dothe.yml> file itself) has been
modified after the C<generates> files.
Can take glob patterns that will be expanded using
L<Path::Tiny::Glob>. The result is accessible via the C<generates> variable.
=head4 C<foreach>
Takes the name of a variable that must hold an array. If presents,
the C<cmds> will be run for each value of that variable, which will
be accessible via C<$item>.
=head4 C<cmds>
List of shell commands to run. The entries can be templates.
As soon as one command fails, the task aborts.
deploy:
vars:
important_test: ./xt/test.t
cmds:
- dzil build
- perl {{ $important_test }}
- dzil release
A command can also be a subtask, with potentially some associated variables:
stuff:
cmds:
- task: other_stuff
vars:
foo: bar
baz: quux
=head1 AUTHOR
Yanick Champoux <yanick@babyl.ca>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 1.875 second using v1.01-cache-2.11-cpan-5b529ec07f3 )