| 1 | # Copyright (c) 2007, Simon Harris |
|---|
| 2 | # |
|---|
| 3 | # All rights reserved. |
|---|
| 4 | # |
|---|
| 5 | # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: |
|---|
| 6 | # |
|---|
| 7 | # * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. |
|---|
| 8 | # * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. |
|---|
| 9 | # * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. |
|---|
| 10 | # |
|---|
| 11 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|---|
| 12 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|---|
| 13 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|---|
| 14 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
|---|
| 15 | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
|---|
| 16 | # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
|---|
| 17 | # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
|---|
| 18 | # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
|---|
| 19 | # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
|---|
| 20 | # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
|---|
| 21 | # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|---|
| 22 | # |
|---|
| 23 | # $Id$ |
|---|
| 24 | |
|---|
| 25 | PortSystem 1.0 |
|---|
| 26 | |
|---|
| 27 | name pulse |
|---|
| 28 | version 1.2.18 |
|---|
| 29 | categories java |
|---|
| 30 | maintainers simon@redhillconsulting.com.au |
|---|
| 31 | description Pulse automated build server |
|---|
| 32 | long_description Pulse is an automated build or continuous integration server. \ |
|---|
| 33 | Pulse regularly checks out your project's source code from your \ |
|---|
| 34 | SCM, builds the project and reports on the results. A project \ |
|---|
| 35 | build typically involves compiling the source code and running \ |
|---|
| 36 | tests to ensure the quality of the code. By automating this \ |
|---|
| 37 | process, pulse allows you to constantly monitor the health of \ |
|---|
| 38 | your project. |
|---|
| 39 | homepage http://www.zutubi.com/products/pulse/ |
|---|
| 40 | master_sites http://www.zutubi.com/download/ |
|---|
| 41 | checksums md5 6da10683325bf7239827e2ff842600d1 |
|---|
| 42 | depends_lib bin:java:kaffe |
|---|
| 43 | |
|---|
| 44 | set osuser pulse |
|---|
| 45 | set osgroup pulse |
|---|
| 46 | set home ${prefix}/share/java/pulse |
|---|
| 47 | set bin ${home}/bin |
|---|
| 48 | set executable ${bin}/pulse |
|---|
| 49 | set dbdir ${prefix}/var/db/pulse |
|---|
| 50 | use_configure no |
|---|
| 51 | |
|---|
| 52 | startupitem.create yes |
|---|
| 53 | startupitem.init "PULSE_HOME=${home}\nPATH=/opt/local/bin:/opt/local/sbin:/opt/local/lib/postgresql82/bin:$PATH" |
|---|
| 54 | startupitem.start "su ${osuser} -c \"${executable} start\"" |
|---|
| 55 | startupitem.stop "su ${osuser} -c \"${executable} shutdown\"" |
|---|
| 56 | |
|---|
| 57 | build {} |
|---|
| 58 | |
|---|
| 59 | destroot { |
|---|
| 60 | # Create the Pulse user |
|---|
| 61 | addgroup ${osgroup} |
|---|
| 62 | set gid [existsgroup ${osgroup}] |
|---|
| 63 | adduser ${osuser} shell=/bin/sh gid=${gid} home=${dbdir} realname=Pulse\ Server |
|---|
| 64 | |
|---|
| 65 | # Ensure we have the needed directories |
|---|
| 66 | xinstall -m 755 -d ${destroot}${home} |
|---|
| 67 | |
|---|
| 68 | # Copy the files |
|---|
| 69 | system "cp -R ${worksrcpath}/ ${destroot}${home}" |
|---|
| 70 | |
|---|
| 71 | # Keep empty directories |
|---|
| 72 | destroot.keepdirs-append ${destroot}${home}/logs ${destroot}${home}/versions |
|---|
| 73 | |
|---|
| 74 | # Fix ownership of some directories pulse really needs to write to |
|---|
| 75 | system "chown -R ${osuser}:${osgroup} ${destroot}${home}/logs" |
|---|
| 76 | system "chown -R ${osuser}:${osgroup} ${destroot}${home}/versions" |
|---|
| 77 | |
|---|
| 78 | # Add a symlink from bin directory to the pulse script |
|---|
| 79 | system "ln -fs ${executable} ${destroot}${prefix}/bin/pulse" |
|---|
| 80 | } |
|---|
| 81 | |
|---|
| 82 | post-install { |
|---|
| 83 | ui_msg "#" |
|---|
| 84 | ui_msg "# The script ${executable} has been installed to facilitate starting and" |
|---|
| 85 | ui_msg "# stopping ${name} as a true daemon process. It must be run as ${osuser}." |
|---|
| 86 | ui_msg "# For example:" |
|---|
| 87 | ui_msg "#" |
|---|
| 88 | ui_msg "# sudo su pulse -c "${executable} start" |
|---|
| 89 | ui_msg "#" |
|---|
| 90 | ui_msg "# This script assumes it is run from ${home}. To run from outside this" |
|---|
| 91 | ui_msg "# directory, you must set the value of PULSE_HOME to the absolute path" |
|---|
| 92 | ui_msg "# of this directory. For example:" |
|---|
| 93 | ui_msg "#" |
|---|
| 94 | ui_msg "# PULSE_HOME=${home} sudo su pulse -c "${executable} start" |
|---|
| 95 | ui_msg "#" |
|---|
| 96 | ui_msg "# You will also need To create the directory ${dbdir} if it does not" |
|---|
| 97 | ui_msg "# already exist:" |
|---|
| 98 | ui_msg "#" |
|---|
| 99 | ui_msg "# sudo mkdir -p ${dbdir}" |
|---|
| 100 | ui_msg "# sudo chown ${osuser}:${osgroup} ${dbdir}" |
|---|
| 101 | ui_msg "#" |
|---|
| 102 | } |
|---|