Gentoo Archives: gentoo-dev

From: Donnie Berkholz <dberkholz@g.o>
To: gentoo-dev@l.g.o
Cc: ali_bush@g.o
Subject: Re: [gentoo-dev] New eclass to support java-virtuals
Date: Thu, 20 Sep 2007 17:54:56
Message-Id: 20070920174407.GN31094@supernova
In Reply to: [gentoo-dev] New eclass to support java-virtuals by Alistair Bush
1 On 23:20 Thu 20 Sep , Alistair Bush wrote:
2 > - # Create package.env
3 > - (
4 > - echo "DESCRIPTION=\"${DESCRIPTION}\""
5 > - echo "GENERATION=\"2\""
6 > -
7 > - [[ -n "${JAVA_PKG_CLASSPATH}" ]] && echo "CLASSPATH=\"${JAVA_PKG_CLASSPATH}\""
8 > - [[ -n "${JAVA_PKG_LIBRARY}" ]] && echo "LIBRARY_PATH=\"${JAVA_PKG_LIBRARY}\""
9 > - [[ -n "${JAVA_PROVIDE}" ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\""
10 > - [[ -f "${JAVA_PKG_DEPEND_FILE}" ]] \
11 > - && echo "DEPEND=\"$(cat "${JAVA_PKG_DEPEND_FILE}" | uniq | tr '\n' ':')\""
12 > - [[ -f "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" ]] \
13 > - && echo "OPTIONAL_DEPEND=\"$(cat "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" | uniq | tr '\n' ':')\""
14 > - echo "VM=\"$(echo ${RDEPEND} ${DEPEND} | sed -e 's/ /\n/g' | sed -n -e '/virtual\/\(jre\|jdk\)/ { p;q }')\"" # TODO cleanup !
15 > - ) > "${JAVA_PKG_ENV}"
16
17 Why not use a code block {} instead of a subshell ()?
18
19 > - # register target/source
20 > - local target="$(java-pkg_get-target)"
21 > - local source="$(java-pkg_get-source)"
22 > - [[ -n ${target} ]] && echo "TARGET=\"${target}\"" >> "${JAVA_PKG_ENV}"
23 > - [[ -n ${source} ]] && echo "SOURCE=\"${source}\"" >> "${JAVA_PKG_ENV}"
24 > -
25 > - # register javadoc info
26 > - [[ -n ${JAVADOC_PATH} ]] && echo "JAVADOC_PATH=\"${JAVADOC_PATH}\"" \
27 > - >> ${JAVA_PKG_ENV}
28 > - # register source archives
29 > - [[ -n ${JAVA_SOURCES} ]] && echo "JAVA_SOURCES=\"${JAVA_SOURCES}\"" \
30 > - >> ${JAVA_PKG_ENV}
31 > -
32 > -
33 > - echo "MERGE_VM=\"${GENTOO_VM}\"" >> "${JAVA_PKG_ENV}"
34 > - [[ -n ${GENTOO_COMPILER} ]] && echo "MERGE_COMPILER=\"${GENTOO_COMPILER}\"" >> "${JAVA_PKG_ENV}"
35
36 I don't understand why all these things are done down here instead of in the
37 same code block as $JAVA_PKG_ENV is created.
38
39 > - # Strip unnecessary leading and trailing colons
40 > - # TODO try to cleanup if possible
41 > - sed -e "s/=\":/=\"/" -e "s/:\"$/\"/" -i "${JAVA_PKG_ENV}" || die "Did you forget to call java_init ?"
42 > +
43 > + if [[ $1 != provider ]]; then
44
45 Could you explain what the next section is supposed to do, as opposed to
46 the above section? Are they expected to be mutually exclusive? The
47 comments suggest so, since both have a 'Create package.env'. But the
48 tests suggest otherwise, since it's not an if...else pair.
49
50 > + # Create directory for package.env
51 > + dodir "${JAVA_PKG_SHAREPATH}"
52 > + if [[ -n "${JAVA_PKG_CLASSPATH}" || -n "${JAVA_PKG_LIBRARY}" || -f \
53 > + "${JAVA_PKG_DEPEND_FILE}" || -f \
54 > + "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" ]]; then
55 > + # Create package.env
56 > + (
57 > + echo "DESCRIPTION=\"${DESCRIPTION}\""
58 > + echo "GENERATION=\"2\""
59 > +
60 > + [[ -n "${JAVA_PKG_CLASSPATH}" ]] && echo "CLASSPATH=\"${JAVA_PKG_CLASSPATH}\""
61 > + [[ -n "${JAVA_PKG_LIBRARY}" ]] && echo "LIBRARY_PATH=\"${JAVA_PKG_LIBRARY}\""
62 > + [[ -n "${JAVA_PROVIDE}" ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\""
63 > + [[ -f "${JAVA_PKG_DEPEND_FILE}" ]] \
64 > + && echo "DEPEND=\"$(cat "${JAVA_PKG_DEPEND_FILE}" | uniq | tr '\n' ':')\""
65 > + [[ -f "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" ]] \
66 > + && echo "OPTIONAL_DEPEND=\"$(cat "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" | uniq | tr '\n' ':')\""
67 > + echo "VM=\"$(echo ${RDEPEND} ${DEPEND} | sed -e 's/ /\n/g' | sed -n -e '/virtual\/\(jre\|jdk\)/ { p;q }')\"" # TODO cleanup !
68 > + ) > "${JAVA_PKG_ENV}"
69
70 Thanks,
71 Donnie
72 --
73 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] New eclass to support java-virtuals Alistair Bush <ali_bush@g.o>