The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

TaskPipe::Tool::Command - base class for TaskPipe Tool commands

DESCRIPTION

See individual <TaskPipe::Tool::Command_...> packages for information on specific commands. You should not use this class directly.

You can create a new tool command by inheriting from this class. However, this is not for the faint-hearted and not recommended if you don't fully understand TaskPipe architecture.

The inherited package should look like this:

    package TaskPipe::Tool::Command_NewCommand;
    use Moose;
    extends 'TaskPipe::Tool::Command';
    with 'MooseX::ConfigCascade';

    has option_specs => (is => 'ro', isa => 'ArrayRef', defaults => sub{[
        
        # which options are available for your command?
        # Enter settings attributes like this:
        {
            module: (name of module to take settings from)
            items: [
                # (arrayref of attributes to take from 
                # the module - or omit to take them all)
            ],
            is_config: 1 # Boolean. Are the settings taken
                            from this module available in config
                            or just on command line?
        },

        {
            # ...
        }

    ]});

    sub execute{
        my ($self) = @_;

        # execute the command here
        
    
    }

    1;

See the other TaskPipe::Tool::Command_ packages for examples of how to prepare a command.

AUTHOR

Tom Gracey <tomgracey@gmail.com>

COPYRIGHT AND LICENSE

Copyright (c) Tom Gracey 2018

TaskPipe is free software, licensed under

    The GNU Public License Version 3