java-utils-2.eclass: Added new function java-pkg_gen-cp
authorWilliam L. Thomson Jr <wlt@o-sinc.com>
Fri, 9 Sep 2016 23:20:50 +0000 (19:20 -0400)
committerJames Le Cuirot <chewi@gentoo.org>
Mon, 17 Oct 2016 15:15:07 +0000 (16:15 +0100)
Java package generate classpath will create a classpath based on special
variable CP_DEPEND in the ebuild. This allows for automatic classpath
creation based on depends. Reduces chance of error in ebuild with slots
in deps not matching slots in classpath variable, etc. Not to most
elegant. Elected for multiple passes using bash vs external sed or awk.

Closes: https://github.com/gentoo/gentoo/pull/2286
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
eclass/java-utils-2.eclass

index 9e0d2d561a30a6c01a80e41c4b1e8a80bbe7ecbd..61b338a30f64b41f2ac013149fcc5affd2fedeb5 100644 (file)
@@ -2886,3 +2886,28 @@ java-pkg_clean() {
                find "${@}" '(' -name '*.class' -o -name '*.jar' ')' -type f -delete -print || die
        fi
 }
+
+# @FUNCTION: java-pkg_gen-cp
+# @INTERNAL
+# @DESCRIPTION:
+# Java package generate classpath will create a classpath based on
+# special variable CP_DEPEND in the ebuild.
+#
+# @CODE
+# Parameters:
+# $1 - classpath variable either EANT_GENTOO_CLASSPATH or JAVA_GENTOO_CLASSPATH
+# @CODE
+java-pkg_gen-cp() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       if [[ ${CP_DEPEND} ]]; then
+               local cp="${!1}"
+               local p
+               for p in ${CP_DEPEND}; do
+                       p="${p/-[0-9]*:/-}"
+                       cp="${cp} ${p#*/}"
+               done
+               cp="${cp//:/-}"
+               [[ ${cp} ]] && export ${1}="${cp//-0/}"
+       fi
+}