Beam::Runner This distribution is an execution and organization system for runnable objects (tasks). This allows you to prepare a list of runnable tasks in configuration files and then execute them. This also allows easy discovery of configuration files and objects, and allows you to document your objects for your users. Tasks A task is an object that consumes the Beam::Runnable role. This role requires only a "run()" method be implemented in the class. This "run()" method should accept all the arguments given on the command line. It can parse GNU-style options out of this array using "GetOptionsFromArray" in Getopt::Long. Task modules can compose additional roles to easily add more features, like adding a timeout with Beam::Runnable::Timeout::Alarm. Task modules are expected to have documentation that will be displayed by the "beam list" and "beam help" commands. The "beam list" command will display the "NAME" section of the documentation, and the "beam help" command will display the "NAME", "SYNOPSIS", "DESCRIPTION", "ARGUMENTS", "OPTIONS", "ENVIRONMENT", and "SEE ALSO" sections of the documentation. Configuration Files The configuration file is a Beam::Wire container file that describes objects. Some of these objects are marked as executable tasks by consuming the Beam::Runnable role. The container file can have a special entry called $summary which has a short summary that will be displayed when using the "beam list" command. Here's an example container file that has a summary, configures a DBIx::Class schema (using the schema class for CPAN Testers: CPAN::Testers::Schema), and configures a runnable task called "to_metabase" located in the class "CPAN::Testers::Backend::Migrate::ToMetabase": # migrate.yml $summary: Migrate data between databases _schema: $class: CPAN::Testers::Schema $method: connect_from_config to_metabase: $class: CPAN::Testers::Backend::Migrate::ToMetabase schema: $ref: _schema For more information about container files, see the Beam::Wire documentation. INSTALLATION This is a Perl module distribution. It should be installed with whichever tool you use to manage your installation of Perl, e.g. any of cpanm . cpan . cpanp -i . Consult http://www.cpan.org/modules/INSTALL.html for further instruction. Should you wish to install this module manually, the procedure is perl Makefile.PL make make test make install COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Doug Bell. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.