On 07/04/2008, Michael Franz <[EMAIL PROTECTED]> wrote:
>
>
> On Mon, Apr 7, 2008 at 5:50 AM, Andrew John Hughes
> <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > On 07/04/2008, Christian Thalinger <[EMAIL PROTECTED]> wrote:
> > > On Sun, 2008-04-06 at 15:47 -0700, mvfranz wrote:
> > > > I would like to fix this in the ecj script for OS X, however I spent
> the
> > > > afternoon trying to script something together that would strip -J
> parameters
> > > > and pass them to the JVM that runs ecj. I get this to work for some
> > > > parameters but not others. Sometimes quoting works sometimes it
> doesn't.
> > > >
> > > > Is there an installation of ecj that handles the -J parameters
> correctly?
> > > > Anyone have bash scripts to handle this?
> > >
> > >
> > > I did this a while ago to bootstrap OpenJDK:
> > >
> > > ARGS=""
> > >
> > > for ARG in "$@"; do
> > > OUT=`echo "$ARG" | grep "^-J"`
> > > if [ "$OUT" = "" ]; then
> > > ARGS="$ARGS $ARG"
> > > fi
> > > done
> > >
> > > Maybe that helps.
> > >
> > > - twisti
> > >
> > >
> > >
> >
> > That's ok if you just want to drop them. Supporting them is a little
> > trickier, and involves chopping the -J and moving the rest of the
> > option prior to the classname.
> >
> >
> >
> > --
> > Andrew :-)
> >
>
> I am not interested in dropping them - that is easy. I want to split them
> up and pass them to correct process.
>
> JVM_ARGS=
> ARGS=
>
> while [ $# -gt 0 ] ; do
> case "$1" in
> -J*) jopt=${1#\-J} ; JVM_ARGS="$JVM_ARGS $jopt";;
> *) ARGS="$ARGS $1" ;;
> esac
> shift
> done
>
> This works most of the time, unless the parameters are empty '' or have
> special values that need to have single quotes around them.
> Blindly single quoting also has bad side effects on some arguments.
>
>
>
>
Exactly. I found this difficult to do purely in Bash script too, so
went for the C option.
--
Andrew :-)
Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net
PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8