NAME
Activator::Project
DESCRIPTION
THIS IS A TODO DESCRIPTION. ANY CODE IMPLEMENTED IS ONLY TO LAY DOWN IDEAS.
Control the building and installation of an Activator project. Can sync a development codebase for local or remote instances, build packages for distribution, or install packages based on your Activator project configuration. This modules supports build types:
sync
sync the codebase to the local or a remote server.
cpan
create a cpan distributable tarball for the project
tgz
create a plain tarball of the project
rpm
create a rpm of the project
deb
create a deb of the project
CONFIGURATION
Activator::Builder
utilizes Activator::Registry for configuration, and the provided builder script grabs these options using Activator::Options.
Create a project configuration directory activator.d
in the top level of your project code directory. Then, create a project YAML configuration file <project>.yml
using these project configuration options:
support this project.yml config:
<realm>: you can create any number of realms. This option allows
mutliple definitions of behavior
build:
type: one of sync, cpan, tgz rpm, deb
dest:
install:
type: one of sync, cpan, tgz rpm, deb
dest: /path/to/install/base
user: user to login as
host: hostname or ip to install to
packages:
<package>:
root: # where the code lives
# requirements
build_requires:
install_requires:
<type>: one of sync, cpan, tgz rpm, deb
<module or package>: <version>
# these files/dirs copied (recursively) unless listed in 'symlink' section
include:
<local dir>: <dest dir>
<local file>: <dest file>
# these files are processed via Template Toolkit
process:
<local dir>: <dest dir>
<local file>: <dest file>
# absolute paths supported, relative must be in the package root
# when dest is remote, these still get created
# side affect: $() notation will work when run in bash shells
symlink:
<local dir>: <local dir>
<local file>: <local file>
services:
- list of service aliases: any extra processing that a
service might require is done during 'build', and services
are restarted during 'install'.
services: services that are expected to conform with redhat
style service command ( start|stop|restart|reload ).
<service alias>:
init_script: <etc/init.d script location>
priority: <priority>
build: extra processing for 'build' command.
install: extra processing for 'install' command.
These two sections follow the same format for
'include','process','symlink' sections in the
'packages' section above. For example:
process:
/path/to/files: /path/to/output
build
Creates a build directory with contents consisting of the results of processing the include
, process
, symlink
and services
sections, plus a PACKAGES
directory if the <realm
>->build>->type is one of cpan
, tgz
, rpm
, or deb
.
install
copies everything from build to install destination