App::DocKnot::Util(3pm)

App::DocKnot::Util3pm

Shared utility functions for other docknot modules

Usage

    use App::DocKnot::Util qw(
        is_newer latest_tarball print_checked print_fh
    );
    use Path::Tiny qw(path);
    print_checked('some stdout output');
    my @inputs = (path('/input-1'), path('/input-2'));
    if (!is_newer(path('/output'), @inputs)) {
        open(my $fh, '>', '/output');
        print_fh($fh, '/output', 'some stuff');
        close($fh);
    }
    my $latest_ref = latest_tarball(path('/archive'), 'App-Foo');

Requirements

Perl 5.24 or later and the modules List::SomeUtils, Path::Tiny, and Sort::Versions, available from CPAN.

Overview

This module collects utility functions used by other App::DocKnot modules. It is not really intended for use outside of DocKnot, but these functions can be used if desired.

Functions

is_newer(FILE, SOURCE[, SOURCE ...])

Returns a true value if FILE exists and has a last modified time that is newer or equal to the last modified times of all SOURCE files, and otherwise returns a false value. Used primarily to determine if a given output file is up-to-date with respect to its source files. All paths must be Path::Tiny objects.

latest_tarball(PATH, NAME)

Returns data including a file list for the latest tarballs (by version number) for a given software package NAME in the directory PATH (which must be a Path::Tiny object). Versions are compared using Sort::Versions. The return valid is a hash with the following keys:

files

The list of files found for that version.

version

The version number extracted from this set of files.

print_checked(ARG[, ARG ...])

The same as print (without a file handle argument), except that it throws a text exception on failure as if autodie affected print (which it unfortunately doesn't because print cannot be prototyped).

print_fh(FH, NAME, DATA[, DATA ...])

Writes the concatenation of the DATA elements (interpreted as scalar strings) to the file handle FH. NAME should be the name of (or Path::Tiny object for) the file open as FH, and is used for error reporting.

This is mostly equivalent to "print {fh}" but throws a text exception in the event of a failure.

Releases

2 releases since Debian 12 (Bookworm); the text changed 1 time.

  1. 12
  2. 13

Author

Russ Allbery <[email protected]>

From docknot 8.0.1-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.