# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#
# Original Author: Andreas Eckstein
# Purpose: Install netbeans cluster files for portage-netbeans-integration
# Last Edited on 07.02.2010
inherit eutils
ECLASS="java-netbeans-library"
INHERITED="$INHERITED $ECLASS"
EXPORT_FUNCTIONS
DEPEND=""
RDEPEND="|| ( virtual/jre virtual/jdk )"
DESCRIPTION="Based on the ${ECLASS} eclass"
IUSE="${IUSE} netbeans-library"
portage_cluster="/usr/share/netbeans-portage-cluster"
package_env="/usr/share/$PN/package.env"
module_name="org-gentoo-$PN`if [[ ! $SLOT -eq 0 ]]; then echo "_$SLOT"; fi`"
jar_name="${module_name}.jar"
display_name="$PN (portage`if [[ ! $SLOT -eq 0 ]]; then echo ", slot $SLOT"; fi`)"
#writes out xml descriptor elements from a colon separated resource list
write_lib_elements()
{
local list="$1"
oldIFS="$IFS"
IFS=":"
for elem in $list; do
test -z "$elem" && continue
if [[ -d "$elem" ]]; then
echo "file:${elem}!/"
else
echo "jar:file:${elem}!/"
fi
done
IFS="$oldIFS"
}
write_library_declaration() {
echo "
${display_name}
j2se
classpath
`write_lib_elements $CLASSPATH`
src
`if use source; then
write_lib_elements $JAVA_SOURCES
fi`
javadoc
`if use doc; then
write_lib_elements $JAVADOC_PATH
fi`
maven-pom
" > "${module_name//-//}/$PN.xml"
}
write_module_status() {
echo "
false
false
true
modules/${jar_name}
1
false
$PV
" > "$WORKDIR/module/$module_name.xml"
}
write_bundle() {
echo "OpenIDE-Module-Name=${module_name//-/.}
" > "${module_name//-//}/Bundle.properties"
}
write_manifest() {
echo "Manifest-Version: 1.0
Created-By: java-netbeans.eclass
OpenIDE-Module-Public-Packages: -
OpenIDE-Module-Java-Dependencies: Java > 1.5
AutoUpdate-Show-In-Client: true
OpenIDE-Module: ${module_name//-/.}
OpenIDE-Module-Localizing-Bundle: ${module_name//-//}/Bundle.properties
OpenIDE-Module-Specification-Version: $PV
OpenIDE-Module-Layer: ${module_name//-//}/layer.xml
OpenIDE-Module-Requires: org.openide.modules.ModuleFormat1
" > META-INF/MANIFEST.MF
}
write_layer() {
echo "
" > "${module_name//-//}/layer.xml"
}
java-netbeans_create_module() {
if ! use netbeans-library; then
return 0
fi
#setting up directory structure for netbeans module jar
mkdir "$WORKDIR/module/jar/${module_name//-//}" -p
cd "$WORKDIR/module/jar/"
mkdir META-INF
#extracting classpath, source and javadoc info from package.env file
#source "$package_env" || die "could not source $package_env"
#we cannot just source package.env because of read-only variable collision
test -f "$package_env" || die "could not find $package_env"
export `grep '^CLASSPATH=' $package_env | sed 's/"//g'`
use source && export `grep '^JAVA_SOURCES=' $package_env | sed 's/"//g'`
use doc && export `grep '^JAVADOC_PATH=' $package_env | sed 's/"//g'`
write_module_status
write_layer
write_bundle
write_manifest
write_library_declaration
zip -r module org META-INF
insinto "$portage_cluster/modules"
newins module.zip "$jar_name"
cd "$WORKDIR/module"
insinto "$portage_cluster/config/Modules"
doins $module_name.xml
}