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 | } |
---|