# $Id: Portfile 82383 2011-08-13 00:08:44Z jmr@macports.org $

PortSystem 1.0

name                    pulse
version                 1.2.18
categories              java
platforms               darwin
maintainers             redhillconsulting.com.au:simon
description             Pulse automated build server
long_description    Pulse is an automated build or continuous integration server. \
            Pulse regularly checks out your project's source code from your \
            SCM, builds the project and reports on the results. A project \
            build typically involves compiling the source code and running \
            tests to ensure the quality of the code. By automating this \
            process, pulse allows you to constantly monitor the health of \
            your project.
homepage        http://www.zutubi.com/products/pulse/
master_sites    http://www.zutubi.com/download/
checksums       md5 6da10683325bf7239827e2ff842600d1
depends_lib     bin:java:kaffe

set osuser      pulse
set osgroup     pulse
set home        ${prefix}/share/java/pulse
set bin         ${home}/bin
set executable  ${bin}/pulse
set dbdir       ${prefix}/var/db/pulse
use_configure   no

startupitem.create  yes
startupitem.init    "PULSE_HOME=${home}\nPATH=${prefix}/bin:${prefix}/sbin:${prefix}/lib/postgresql82/bin:\$PATH"
startupitem.start   "su ${osuser} -c \"${executable} start\""
startupitem.stop    "su ${osuser} -c \"${executable} shutdown\""

build {}

destroot {
    # Create the Pulse user
    addgroup ${osgroup}
    set gid [existsgroup ${osgroup}]
    adduser ${osuser} shell=/bin/sh gid=${gid} home=${dbdir} realname=Pulse\ Server

    # Ensure we have the needed directories
    xinstall -m 755 -d ${destroot}${home}

    # Copy the files
    system "cp -R ${worksrcpath}/ ${destroot}${home}"

    # Keep empty directories
    destroot.keepdirs-append ${destroot}${home}/logs ${destroot}${home}/versions

    # Fix ownership of some directories pulse really needs to write to
    system "chown -R ${osuser}:${osgroup} ${destroot}${home}/logs"
    system "chown -R ${osuser}:${osgroup} ${destroot}${home}/versions"

    # Add a symlink from bin directory to the pulse script
    system "ln -fs ${executable} ${destroot}${prefix}/bin/pulse"
}

post-install {
    ui_msg "#"
    ui_msg "# The script ${executable} has been installed to facilitate starting and"
    ui_msg "# stopping ${name} as a true daemon process. It must be run as ${osuser}."
    ui_msg "# For example:"
    ui_msg "#"
    ui_msg "#   sudo su pulse -c \"${executable} start\""
    ui_msg "#"
    ui_msg "# This script assumes it is run from ${home}. To run from outside this"
    ui_msg "# directory, you must set the value of PULSE_HOME to the absolute path"
    ui_msg "# of this directory. For example:"
    ui_msg "#"
  ui_msg "#   PULSE_HOME=${home} sudo su pulse -c \"${executable} start\""
    ui_msg "#"
    ui_msg "# You will also need To create the directory ${dbdir} if it does not"
    ui_msg "# already exist:"
    ui_msg "#"
    ui_msg "#   sudo mkdir -p ${dbdir}"
    ui_msg "#   sudo chown ${osuser}:${osgroup} ${dbdir}"
    ui_msg "#"
}
