NAME

App::Yath::Script - Script initialization and utility functions for Test2::Harness

SYNOPSIS

The yath script uses this module as its entry point:

#!/usr/bin/perl
use strict;
use warnings;

BEGIN {
    return if $^C;
    require App::Yath::Script;
    App::Yath::Script::do_begin();
}

exit(App::Yath::Script::do_runtime());

DESCRIPTION

This module provides the initial entry point for the yath script. It handles script discovery, configuration loading, version detection, and delegation to version-specific script modules (App::Yath::Script::V{X}).

During the BEGIN phase, do_begin() locates .yath.rc and .yath.user.rc configuration files, determines the harness version to use, and delegates to the appropriate App::Yath::Script::V{X} module. At runtime, do_runtime() hands off execution to that module.

Version Detection

When no configuration file is found, the latest installed App::Yath::Script::V{X} module is used automatically (V0 is excluded from auto-detection since it is reserved for script validation).

The version is determined by the configuration filename using the following priority (highest first) in each directory searched:

  1. A .yath.rc symlink whose target filename matches .yath.v#.rc -- the version is extracted from the target name. This lets projects keep a stable .yath.rc name while pointing at the versioned file.
  2. An explicitly versioned file .yath.v#.rc (e.g. .yath.v2.rc).
  3. A plain .yath.rc (not a symlink to a versioned file) -- defaults to 1 for backwards compatibility with existing Test2::Harness projects.

The same priority applies to user-level configuration (.yath.user.rc / .yath.user.v#.rc).

If both project-level and user-level configuration files specify a version, the user-level version takes precedence. This allows individual developers to override the project-level version when needed.

PRIMARY API

These are the main entry points used by the yath script:

EXPORTS

All exports are optional (via Importer).

SOURCE

The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/.

MAINTAINERS

AUTHORS

COPYRIGHT

Copyright Chad Granum exodist7@gmail.com.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/