The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

ShipIt::Conf -- holds/parses config info for a project

SYNOPSIS

# done for you:
my $conf = ShipIt::Conf->parse(CONFFILE);

# fetch keys out of it in your Step's init method
package ShipIt::Step::Custom;
use base 'ShipIt::Step';
sub init {
    my ($self, $conf) = @_;
    ....
    $self->{foo} = $conf->value("foo_key");
    ....
}

CLASS METHODS

parse

$conf = ShipIt::Conf->parse(".shipit");

Returns a ShipIt::Conf object from a file. Dies on parse failure.

write_template

ShipIt::Conf->write_template($file);

Writes out a dummy config file to the provided $file.

INSTANCE METHODS

value

$val = $conf->value($key);

Fetch a config value. (also marks it as a known key, so any unknown keys in a .shipit config file cause a configuration error)

die_if_unknown_keys

Die if any key exists which has never been asked for.

steps

Returns array of ShipIt::Step instances, based on the value of steps in your .shipit config file. For instance, in your .shipit file:

steps = FindVersion, ChangeVersion, Commit, Tag, MakeDist

The makes ShipIt::Step::FindVersion loaded & instantiated (with 'new', which calls by default 'init'), followed by ChangeVersion, etc.