blob: 638b54df9bc19ad8f7d16e2acef904e773d2dae4 (
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
|
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/eclipse-ext.eclass,v 1.1 2004/06/03 11:44:25 karltk Exp $
# Author: Karl Trygve Kalleberg <karltk@gentoo.org>
# Maintainer: Karl Trygve Kalleberg <karltk@gentoo.org>
inherit base
ECLASS="eclipse-ext"
INHERITED="${INHERITED} ${ECLASS}"
IUSE="${IUSE}"
SLOT="${SLOT}"
eclipse_ext_type="source"
eclipse_ext_slot="0"
eclipse_ext_basedir="/usr/lib-eclipse-${eclipse_ext_slot}"
# ---------------------------------------------------------------------------
# @public require-slot
#
# Ensure that an Eclipse SDK is actually available for the given slot;
# sets internal state to install for selected slot.
#
# @param $1 - SLOT of Eclipse SDK that required for this ebuild
# alternatively
# @return 0 - all is well, non-zero otherwise
# ---------------------------------------------------------------------------
function eclipse-ext_require-slot {
# karltk: Should probably add support for a span of slots
local slot=$1
if [ ! -d /usr/lib/eclipse-${slot} ] ; then
eerror "Cannot find any installed Eclipse SDK for slot ${slot}"
return 1
fi
eclipse_ext_slot=${slot}
eclipse_ext_basedir="/usr/lib-eclipse-${eclipse_ext_slot}"
return 0
}
# ---------------------------------------------------------------------------
# @public create-plugin-layout
#
# Create directory infrastructure for binary-only plugins so that the installed
# Eclipse SDK will see them. Sets internal state for installing as source or
# binary.
#
# @param $1 - type of ebuild, "source" or "binary"
# @return - nothing
# ---------------------------------------------------------------------------
function eclipse-ext_create-ext-layout {
local type=$1
if [ "${type}" == "binary" ] ; then
eclipse_ext_basedir="/opt/eclipse-extensions-${eclipse_ext_slot}"
dodir ${eclipse_ext_basedir}/eclipse/{features,plugins}
touch ${D}/${eclipse_ext_basedir}/eclipse/.eclipseextension
else
eclipse_ext_basedir="/usr/lib/eclipse-${eclipse_ext_slot}"
fi
}
# ---------------------------------------------------------------------------
# @public install-features
#
# Installs one or multiple features into the plugin directory for the required
# Eclipse SDK.
#
# Note: You must call require-slot prior to calling install-features. If your
# ebuild is for a binary-only plugin, you must also call create-plugin-layout
# prior to calling install-features.
#
# @param $* - feature directories
# @return 0 - if all is well
# 1 - if require-slot was not called
# ---------------------------------------------------------------------------
function eclipse-ext_install-features {
if [ ${eclipse_ext_slot} == 0 ] ; then
eerror "You must call require-slot prior to calling ${FUNCNAME}!"
return 1
fi
for x in $* ; do
if [ -f $x/feature.xml ] ; then
cp -a $x ${D}/${eclipse_ext_basedir}/eclipse/features
fi
done
}
# ---------------------------------------------------------------------------
# @public install-plugins
#
# Installs one or multiple plugins into the plugin directory for the required
# Eclipse SDK.
#
# Note: You must call require-slot prior to calling install-features. If your
# ebuild is for a binary-only plugin, you must also call create-plugin-layout
# prior to calling install-features.
#
# @param $* - plugin directories
# @return - nothing
# ---------------------------------------------------------------------------
function eclipse-ext_install-plugins {
if [ ${eclipse_ext_slot} == 0 ] ; then
eerror "You must call require-slot prior to calling ${FUNCNAME}!"
return 1
fi
for x in $* ; do
if [ -f $x/plugin.xml ] ; then
cp -a $x ${D}/${eclipse_ext_basedir}/eclipse/plugins
fi
done
}
|