blob: 10b4f25db3457f868b615424b7dc15d159f0b707 (
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/zproduct.eclass,v 1.13 2004/09/18 16:01:22 batlogg Exp $
# Author: Jason Shoemaker <kutsuya@gentoo.org>
# This eclass is designed to streamline the construction of
# ebuilds for new zope products
ECLASS=zproduct
INHERITED="${INHERITED} ${ECLASS}"
EXPORT_FUNCTIONS src_install pkg_prerm pkg_postinst pkg_config
DESCRIPTION="This is a zope product"
#HOMEPAGE=""
#SRC_URI=""
RDEPEND=">=net-zope/zope-2.6.0-r2
app-admin/zprod-manager"
IUSE=""
SLOT="0"
KEYWORDS="x86 ~ppc"
S=${WORKDIR}
ZI_DIR="${ROOT}/var/lib/zope/"
ZP_DIR="${ROOT}/usr/share/zproduct"
DOT_ZFOLDER_FPATH="${ZP_DIR}/${PF}/.zfolder.lst"
zproduct_src_install()
{
## Assume that folders or files that shouldn't be installed
# in the zproduct directory have been already been removed.
## Assume $S set to the parent directory of the zproduct(s).
debug-print-function ${FUNCNAME} ${*}
[ -n "${ZPROD_LIST}" ] || die "ZPROD_LIST isn't defined."
[ -z "${1}" ] && zproduct_src_install all
# set defaults
into ${ZP_DIR}
dodir ${ZP_DIR}/${PF}
while [ -n "$1" ] ; do
case ${1} in
do_zpfolders)
## Create .zfolders.lst from $ZPROD_LIST.
debug-print-section do_zpfolders
for N in ${ZPROD_LIST} ; do
echo ${N} >> ${D}/${DOT_ZFOLDER_FPATH}
done ;;
do_docs)
#*Moves txt docs
debug-print-section do_docs
docs_move
for ZPROD in ${ZPROD_LIST} ; do
docs_move ${ZPROD}/
done ;;
do_install)
debug-print-section do_install
# Copy everything that's left to ${D}${ZP_DIR}
cp -a ${S}/* ${D}/${ZP_DIR}/${PF} ;;
all)
debug-print-section all
zproduct_src_install do_zpfolders do_docs do_install ;;
esac
shift
done
debug-print "${FUNCNAME}: result is ${RESULT}"
}
docs_move()
{
# if $1 == "/", then this breaks.
if [ -n "$1" ] ; then
docinto $1
else
docinto /
fi
dodoc $1HISTORY.txt $1README{.txt,} $1INSTALL{.txt,} > /dev/null
dodoc $1AUTHORS $1COPYING $1CREDITS.txt $1TODO{.txt,} > /dev/null
dodoc $1LICENSE{.GPL,.txt,} $1CHANGES{.txt,} > /dev/null
dodoc $1DEPENDENCIES.txt $1FAQ.txt $1UPGRADE.txt > /dev/null
for item in ${MYDOC} ; do
dodoc ${1}${item} > /dev/null
done
}
zproduct_pkg_postinst()
{
#*check for multiple zinstances, if several display install help msg.
#*Use zprod-update to install this zproduct to the default zinstance.
debug-print-function ${FUNCNAME} ${*}
# this is a shared directory, so root should be owner;
# zprod-manager or whatever is used to copy products into the
# instances has to take care of setting the right permissions in
# the target directory
chown -R root:root ${ZP_DIR}/${PF}
# make shure there is nothing writable in the new dir
chmod -R go-w ${ZP_DIR}/${PF}
einfo ">>> Installing ${PF} into the \"$(zope-config --zidef-get)\" zinstance..."
${ROOT}/usr/sbin/zprod-manager add ${ZP_DIR}/${PF}
}
# This function is deprecated! Still used, until a new system developed.
zproduct_pkg_prerm()
{
# remove this zproduct from all zinstances.
# process zinstance.lst and proceed with zprod-update del
debug-print-function ${FUNCNAME} ${*}
ewarn "Uninstalling from all zinstances..."
ZINST_LST=$(ls /var/lib/zope/)
if [ "${ZINST_LST}" ] ; then
for N in ${ZINST_LST} ; do
${ROOT}/usr/sbin/zprod-manager del ${ZP_DIR}/${PF} ${ZI_DIR}${N}
done
fi
}
# Add this zproduct to the top zinstance.
zproduct_pkg_config()
{
einfo "To add zproducts to other zinstances execute:"
einfo "\tzprod-manager add"
}
|