NAME
CPANPLUS::Dist::Debora::Util - Utility functions
VERSION
version 0.007
SYNOPSIS
use CPANPLUS::Dist::Debora::Util qw(
parse_version
module_is_distributed_with_perl
decode_utf8
slurp_utf8
spew_utf8
can_run
run
find_most_recent_mtime
find_shared_objects
);
my $name = 'Module::CoreList';
my $version = parse_version('2.32');
my $ok = module_is_distributed_with_perl($name, $version);
my $string = decode_utf8($bytes);
my $ok = spew_utf8($filename, $string);
my $string = slurp_utf8($filename);
my $program = can_run('perl');
if ($program) {
my $output = '';
if (run(command => [$program, '-v'], buffer => \$output)) {
print $output;
}
}
my $last_modification = find_most_recent_mtime($sourcedir);
for my $filename (@{find_shared_objects($stagingdir)}) {
say $filename;
}
DESCRIPTION
This module provides utility functions for CPANPLUS::Dist::Debora.
SUBROUTINES/METHODS
parse_version
my $version = parse_version($string);
Returns a version object.
module_is_distributed_with_perl
my $is_included = module_is_distributed_with_perl($name, $version);
Checks whether the specified module is part of the standard Perl distribution.
decode_utf8
my $string = decode_utf8($bytes);
Decodes UTF-8 encoded bytes to a string.
slurp_utf8
my $string = slurp_utf8($filename);
Reads UTF-8 encoded data from a file.
spew_utf8
my $ok = spew_utf8($filename, $string);
Writes a string to a file.
can_run
my $path = can_run($program);
Locates an external command and returns the path to the binary or the undefined value.
run
my $ok = run(
command => [$program, @args],
dir => $dir,
buffer => \$bytes,
verbose => 0|1,
on_error => sub { say "Could not run '$_[0]': $_[1]" },
);
Runs an external command in the current or specified directory. Optionally stores the command output in a variable.
unix_path
my $path = unix_path($path);
Converts an OS specific path into a Unix path with forward slashes.
filetype
my $type = filetype($filename);
Determines a file's type. Returns "data", "executable", "script" or "text";
find_most_recent_mtime
my $mtime = find_most_recent_mtime($sourcedir);
Searches the specified directory recursively for the last modified file. Returns the modification time.
find_shared_objects
my @filenames = @{find_shared_objects($stagingdir)};
Searches the specified directory recursively for shared objects and executable programs.
is_testing
my $is_testing = is_testing;
Returns true if automated or release testing is enabled.
DIAGNOSTICS
CONFIGURATION AND ENVIRONMENT
Environment variables
AUTOMATED_TESTING, RELEASE_TESTING
The test mode is enabled if any of these variables is set. No packages are installed in test mode.
DEPENDENCIES
Requires only modules that are distributed with Perl.
INCOMPATIBILITIES
None.
AUTHOR
Andreas Vögele <voegelas@cpan.org>
BUGS AND LIMITATIONS
Install IPC::Run if IPC::Open3 causes IO::Select to output warnings.
This module cannot be used in taint mode.
LICENSE AND COPYRIGHT
Copyright 2022 Andreas Vögele
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.