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