summaryrefslogtreecommitdiff
path: root/build/mac/installer-resources/postinstall
blob: 04698a11645c96ac3f18dee2455887ed0352d359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/sh
#
# Copyright (c) 2003-2004 Silicon Graphics, Inc.  All Rights Reserved.
# 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
# 
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# Post installation/upgrade script for PCP
#

prog=`basename $0`
status=1
trap "exit \$status" 0 1 2 15

echo "$prog: PCP for MacOSX Install"

echo "$prog: Writing install log to /var/log/pcp_inst.log"
echo "$prog: Writing install log to /var/log/pcp_inst.log"  > /var/log/pcp_inst.log

if [ ! -d $2 ]
then
    echo "$prog: Unable to open directory of new files ($2)"
    echo "$prog: Unable to open directory of new files ($2)" >> /var/log/pcp_inst.log
    exit
fi

cd $2

if ./install-pcp -i -l /var/log/pcp_inst.log idb
then
    :
else
    echo "$prog: Install Failed"
    echo "$prog: Install Failed" >> /var/log/pcp_inst.log
    exit
fi

if [ -f /etc/pcp.conf ]
then
    # for all the configuration files we know about, salt away file
    # with a .orig suffix for a subsequent upgrade
    #
    . /etc/pcp.conf
    for conf in \
	$PCP_PMCDCONF_PATH $PCP_PMCDOPTIONS_PATH $PCP_PMCDRCLOCAL_PATH \
	$PCP_PMIECONTROL_PATH $PCP_PMLOGGERCONTROL_PATH \
	$PCP_PMPROXYOPTIONS_PATH $PCP_PMWEBDOPTIONS_PATH
    do
	[ -f $conf ] && cp $conf $conf.orig
    done
fi

# create the user/group account that PCP daemons will use
#
userid=432
groupid=432

if ! dscl . -list /Groups | grep -q '^pcp$' 
then
    dscl . -create /Groups/pcp
    dscl . -create /Groups/pcp PrimaryGroupID $groupid
    dscl . -create /Groups/pcp Password \*
fi

if ! dscl . -list /Users | grep -q '^pcp$' 
then
    dscl . -create /Users/pcp
    dscl . -create /Users/pcp UniqueID $userid
    dscl . -create /Users/pcp UserShell /usr/bin/false
    dscl . -create /Users/pcp RealName 'Performance Co-Pilot'
    dscl . -create /Users/pcp NFSHomeDirectory /var/lib/pcp
    dscl . -create /Users/pcp PrimaryGroupID $groupid
    dscl . -create /Users/pcp Password \*
    dscl . append /Groups/pcp GroupMembership pcp
fi

chown -R pcp:pcp /var/log/pcp/pmcd 2>/dev/null
chown -R pcp:pcp /var/log/pcp/pmlogger 2>/dev/null
chown -R pcp:pcp /var/log/pcp/pmie 2>/dev/null
chown -R pcp:pcp /var/log/pcp/pmwebd 2>/dev/null
chown -R pcp:pcp /var/log/pcp/pmproxy 2>/dev/null

status=0