The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Footprintless::Util - A utility method package for common functionality in Footprintless

VERSION

version 1.19

SYNOPSIS

    use Footprintless::Util qw(
        agent
        clean
        default_command_runner
        dumper
        exit_due_to
        extract
        resource_manager
        slurp
        spurt
        temp_dir
    );    

    my $agent = agent();
    my $command_runner = default_command_runner();
    my $dumper = dumper();
    
    eval {
        $command_runner->run_or_die('cat /foo/bar');
    };
    exit_due_to($@) if ($@);    
    my $content = slurp('/foo/bar');
    spurt('baz', '/foo/bar', append => 1);

DESCRIPTION

This module contains common utility methods used by Footprintless.

FUNCTIONS

agent(%options)

Returns a new agent. By default env_proxy is set. The supported options are:

A hashref for storing cookies. If not supplied, cookies will be ignored.

timeout

The http request timeout.

clean($paths, %options)

Removes all the entries in $paths (must be an array ref). If an entry ends with a / it is assumed to be a directory, and will be recreated.

default_command_runner()

Returns a new instance of the default implementation of Footprintless::CommandRunner.

dumper(@to_dump)

Prints a dump of @to_dump using Data::Dumper with Data::Dumper::Indent set to 1.

dynamic_module_new($module_name, @new_args)

Require's and creates a new instance of $module_name, passing @new_args to the new method.

exit_due_to($reason, $verbose)

If $reason is an instance of Footprintless::CommandRunner::ExecutionException, $reason->exit() will be called. Otherwise, $reason will be printed to STDERR and exit(255) will be called. The $verbose argument will be passed on thusly: $reason->exit($verbose).

extract($archive, %options)

Will extract $archive. Will attempt to use Archive::Extract::Libarchive and if not found, will use Archive::Extract. The available options are:

to

The location to extract to. Defaults to cwd.

type

The type of the archive. If not specified, the type will be inferred by the file extension according to Lib::Archive. The following additional extensions will be inferred as type zip: ear, jar, twbx, war.

factory($entities, %options)

Creates a new Footprintless::Factory. $entities can be either, a hashref, or a Config::Entities object. If a hashref, it will be used to create a new entities object, then passed along with options to the Footprintless::Factory constructor.

invalid_entity($message, $coordinate)

Dies with an instance of Footprintless::InvalidEntityException.

rebase($path, \%rebase)

Replaces a portion of the start of $path. \%rebase must have 2 keys, from and to. The from value will be removed from $path and replaced with the to value.

resource_manager($agent)

Returns a new instance of Footprintless::ResourceManager configured with a maven provider if Maven::Agent is available, and a url provider in that order. If $agent is provided, it will be passed on to the providers.

slurp([$file])

Reads the entire contents of $file in one gulp. If $file is omitted, then it will read STDIN.

spurt($content, $file, %options)

Writes $content to $file. The available options are:

temp_file()

Creates a new temporary file with mode 0600 Returns the new File::Temp object. Uses File::Temp so you can set File::Temp::HIGH for extra safety.

temp_dir()

Creates a new temporary directory with mode 2700. Returns the new File::Temp object. Uses File::Temp so you can set File::Temp::HIGH for extra safety.

append

If truthy, $content will be appended to $file instead of overwriting.

AUTHOR

Lucas Theisen <lucastheisen@pastdev.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Lucas Theisen.

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

SEE ALSO

Please see those modules/websites for more information related to this module.