
Test::AutoBuild::Module - represents a code module to be built

use Test::AutoBuild::Module;
my $module = Test::AutoBuild::Module->new(name => $name,
label => $label,
paths => \@paths,
repository => $repository,
[depends => \@modules,]
[env => \%env,]
[group => $group,]
[dir => $directory],
[buildroot => $directory],
[controlfile => $controlfile]);
$module->build($cache, \%modules);
$module->install($cache, \%modules);

The Test::AutoBuild::Module manages a single code module in the build.

The valid configuration options for the modules block are

my $module = Test::AutoBuild::Module->new(name => $name, label => $label, paths => \@paths, repository => $repository, [depends => \@modules,] [env => \%env,] [group => $group,] [dir => $directory], [buildroot => $directory], [controlfile => $controlfile]);
Creates a new code module object.
nameis a alphanumeric token for the name of the module.labeis a short human friendly title for the module. Thepathsarray ref is a list of paths to checkout of the source repository, whose name is specified byrepository.dependsis an array ref containing a list of dependant module names.envis a hash ref of environment variables to define when building the module.groupis the optional name of the group to which the module belongs.diris the directory in which the module was checked out, if different fromname.buildrootis the path of the virtual root directory for this module if different from the global default. Thecontrolfileparameter is the name of the build control file to run if different from the global default.my $value = $module->option($name[, $newvalue]);
Returns the value of the option referenced by
name. If thenewvalueparameter is supplied, then the option is also updated.my $label = $module->label([$newlabel]);
Returns the label of this module, a short human friendly title. If the
newlabelparameter is supplied the label is also updated.my $name = $module->name([$newname]);
Returns the name of this module, a short alphanumeric token. If the
newnameparameter is supplied the name is also updated.my \@paths = $module->paths([@newpaths]);
Returns an array reference of paths to check out of the source control repository. If the
newpathsparameter is supplied, the paths are also updated.my $repository = $module->repository($newrep)
Returns the name of the source repository storing this module. If the
newrepparameter is supplied the name is also updated.my $path = $module->dir($newpath);
Returns the path for the directory checked out of source control. Typically this is the same as the module name. If the
newpathparameter is supplied the dir is updated.my $dir = $module->build_root([$newpath]);
Returns the path to the virtual root directory in which this module will install files. If the
newpathparameter is supplied the build root will be updated.$module->install($cache, \%modules);
Installs all this module's files from a previously populated build cache. If any dependant modules have not yet been processed, they will be installed first.
my \%packages = $module->packages($pkgs, $package_types);
Not quite sure what this does yet.
my \@modules = $module->dependancies([\@modules]);
Returns an array ref of dependant module names. If the
modulesparameter is supplied then the list of dependants is updated.my \@links = $module->links([\@links]);
Returns an array ref of links associated with this module. Each element in the array is a hash reference. The keys in the hash reference are,
title,descriptionandhref.my \@artifacts = $module->artifacts([\@artifacts]);
Returns an array ref of artifacts to publish at the end of each build cycle. Each element in the array is a hash reference. The keys in the hash reference are,
title,destionation,src,dst, andpublisher.

Daniel Berrange <dan@berrange.com>

Copyright (C) 2002-2004 Daniel Berrange <dan@berrange.com>
