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

NAME

App::Provision::Tiny - Provision computers

VERSION

version 0.0404

SYNOPSIS

  # With the module:
  use App::Provision::Foo;
  $foo = App::Provision::Foo->new;
  print join(', ', $foo->deps), "\n"; # Just for info, currently
  $foo->meet;

  # Command line examples:
  > provis wget
  > provis ssh --keytype dsa --keyname github
  > provis foundation --release x.y.z --site /the/www/site/root

DESCRIPTION

An App::Provision::Tiny together with a sub-classed recipe module (like Foo), contain the methods to provision a workstation or server.

* Currently, the included recipes are for homebrew or apt based machines.

METHODS

new()

  $app = App::Provision::Tiny->new(%arguments);

Create a new App::Provision::Tiny object.

Argument: default

 system:  osx
 program: undef
 release: undef
 repo:    undef
 site:    undef
 keytype: undef
 keyname: undef

condition()

This is the condition to check for the presence of a program, and should be redefined in your subclass, if anything beyond a simple `which program` is needed.

recipe()

This is the actual set of steps to take to check for and install a program, and should be used, or redefined, in your subclass, in the meet() method.

The steps can be simple system (i.e. "shell") commands or complex perl. By default, this base recipe uses the system_install() method.

system_install()

Use a simple system(@command) function to install the program.

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2022 by Gene Boggs.

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