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