NAME

YA::CLI - Yet another CLI framework

VERSION

version 0.007

SYNOPSIS

package main;
require Your::App;
Your::App->run();


package Your::App;
use Moo;
extends 'YA::CLI';

__PACKAGE__->meta->make_immutable;


package Your::App::SubCommand;
use Moo;
use namespace::autoclean;
with 'YA::CLI::ActionRole';

# This is the action your sub command is selected on
sub action { 'main' } # can also be an array in case you want aliases

# This is the subaction your sub command is selected on. This is an
# optional sub, you don't need to implement it
sub subaction { 'thing' } # can also be an array in case you want aliases

sub run {
    # Logic here
}

__PACKAGE__->meta->make_immutable;

DESCRIPTION

A CLI framework for CLI applications that use subcommands

METHODS

run

Runs the application

default_search_path

Override the default search path, defaults to your Your::App namespace.

exclude_search_path

Excludes the search paths, can be a string, array ref or regexp

default_handler

Defaults to main for your default handler. If this handler cannot be found ultimatly falls back to YA::CLI::ErrorHandler which deals with just --help and --man commands. You can set this value to undef, which in turn will display the usage of your script.

cli_options

Define Getopt::Long options in your module that are used on top of the default help and man.

SEE ALSO

AUTHOR

Wesley Schwengle <waterkip@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2022 by Wesley Schwengle.

This is free software, licensed under:

The (three-clause) BSD License