App-ModuleBuildTiny

 view release on metacpan or  search on metacpan

script/mbtiny  view on Meta::CPAN

package App::ModuleBuildTiny::Help;

use parent qw(Pod::Simple::Methody);

sub start_head1 {
	my ($self, $attrs) = @_;
	$self->{_mbth_head1_content} = '';
}

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

	$self->{_mbth_in_subcommands} = delete($self->{_mbth_head1_content}) eq 'SUBCOMMANDS';
}

sub start_head2 {
	my ($self, $attrs) = @_;

	return unless $self->{_mbth_in_subcommands};
	$self->{_mbth_subcommand_name} = '';
}

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

	if (my $cmd = delete $self->{_mbth_subcommand_name}) {
		$self->output_fh->printf("    %-10s - ", $1) if $cmd =~ /(^\w+)/;
		$self->{_mbth_print_desc} = 1;
	}
}

sub handle_text {
	my ($self, $text) = @_;

	if (defined $self->{_mbth_head1_content}) {
		$self->{_mbth_head1_content} .= $text;
		return;
	}

	if (defined $self->{_mbth_subcommand_name}) {
		$self->{_mbth_subcommand_name} .= $text;
		return;
	}

	if (delete $self->{_mbth_print_desc}) {
		$self->output_fh->say($1) if $text =~ /^([^.(]+)/;
	}
}

__END__

=head1 NAME

mbtiny - A standalone authoring script for Module::Build::Tiny

=head1 SYNOPSIS

 mbtiny listdeps | cpanm
 mbtiny test --release
 mytiny regenerate
 mbtiny upload

=head1 DESCRIPTION

C<mbtiny> is a tool to help assemble your CPAN distributions. It's a minimalist tool that tries to come with as few surprises as possible, and thus provide a gentle learning curve for its users.

=head1 SUBCOMMANDS

=head2 regenerate [--bump] [--version=<version] [--verbose] [--dry-run] [--scan] <files>...

Regenerate the specified files. If no files are given, defaults to all six files it can regenerate. You usually want to do this when bumping the version of a module. Takes the following options:

=over 4

=item * bump

Bump the version of the distribution before regenerating. The default for this when regenerating all files can be set in the configuration.

=item * version = <new-version>

Set the version of the distribution before regenerating.

=item * scan

Scan for dependencies to include in the metafiles. The default for this can be set in the configuration.

=item * trial

Make the new version a trial version.

=item * commit

Create a git commit for the version bump. The default for this when regenerating all files can be set in the configuration.

=item * verbose

This will make regeneration more verbose.

=item * dry-run

This will cause it to not write anything to disk, this is only ever useful when combined with the verbose option.

=back

The following files can be generated:

=over 4

=item * Build.PL

The code needed to build the dist using L<Module::Build::Tiny|Module::Build::Tiny> or L<Dist::Build|Dist::Build>.

It will use the former unless a C<planner/> directory is present.

=item * MANIFEST

The list of files in this distribution, and optionally descriptions.

=item * META.json

Most meta information about this distributions. Useful for both presenting information to the user as for installing the distribution.

=item * META.yml

The legacy meta file. This is mainly useful for bootstrapping on CPAN clients too old to support META.json but recent enough to support configure_requires.

=item * README

A description of the project, based on the documentation of the main module.

=item * LICENSE

The license of the distribution.

=back

=head2 upload [--silent] [--config=<config_file>] [--tag] [--push]

Assemble a tarball and upload it to CPAN.

Using a L<Config::Identity|Config::Identity> compatible F<.pause> file in your home directory is recommended, but if it's absent or incomplete your credentials will be asked on the console. Takes the following options:

=over 4

=item * tag

Tag the current release with the current version. The default for this can be set in the configuration.

=item * push

Push the current commit, and tag it C<--tag> is also specified. The default for this can be set in the configuration.

=item * silent

This will enable silent mode

=item * config=<config-file>

The location of your pause credentials

=back

=head2 test [--no-author] [--release]

Run all of the tests of a distribution. Takes two negatable options:

=over 4

=item * release

Run release tests. Defaults to false.

=item * author

Run author tests. Defaults to true.

=back

=head2 scan [--omit-core=<version>] [--omit=<module>]

Scan the C<lib/>, C<script/> and C<t/> directories for dependencies and write them to C<prereqs.json>. Accepts the following option:

=over 4

=item * omit_core = version

Set a minimum perl version (e.g. C<5.008001> or C<v5.8.1>) whose core-provided dependencies will not be explicitly included.

=item * omit = module

Omit a specific module from the dependencies. Can be specified multiple times.

=back

=head2 mint [--<option>=<value>]...  <distribution>

Create a new distribution. Takes one mandatory positional argument, the name of the new distribution, and the following optional named arguments:

=over 4



( run in 1.852 second using v1.01-cache-2.11-cpan-b16cb0d3907 )