flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Ent <p...@adobe.com>
Subject Re: Getting Mustella to work.
Date Thu, 23 Aug 2012 16:13:07 GMT
The code makes an initial command line, then separates them into String[].
A bit later it joins the String[] back to string, adds more arguments, and
splits it again. I think it sounds simpler than it is, but that's the gist
of it. I think the code should have been written to just create an
ArrayList of all the arguments and then turn that into an Array when ready
to launch the compiler; that's how I would ultimately solve it.


On 8/23/12 12:01 PM, "Alex Harui" <aharui@adobe.com> wrote:

>It might be better to figure out how to quote those entries.  Why was it
>hard to do that as the command line gets built up?
>On 8/23/12 8:55 AM, "Peter Ent" <pent@adobe.com> wrote:
>> Certainly appreciate the help. Here's a typical one when running
>> -debug -define=CONFIG::skaha,false
>> ger,flash.fonts.BatikFontManager,flash.fonts.CFFFontManager
>> -source-path=/Users/pent/apache/flex/mustella/Assets
>> -includes=ExcludeFileLocation -includes=SetShowRTE
>> -includes=SaveBitmapFailures
>> -includes=datagrid_properties_lockedColumnCount_mxml
>> aGrid_SparkSkin/Properties --allow-source-path-overlap=true
>> -includes=SendResultsToRunner  -includes=ExitWhenDone -source-path=.
>> -source-path=/Users/pent/apache/flex/mustella/../frameworks/
>> -source-path=/Users/pent/apache/flex/mustella/as3/src/mustella
>> Try changing my path, "/Users/pent/apache/" to something like
>> "/Users/pent/apache with spaces/" to get a better example.
>> What happens in the code is that groups of these options may be coming
>> from the environment, so you might find "-debug
>> -define=CONFIG::skaha,false" being added as a single entity. Then code
>> turns what it has at the moment into a String[] and passes that to
>> function that might add more arguments. If that function does, it will
>> turn the String[] back into a String, add the arguments, then turn it
>> into String[].  
>> But if you can make something that will convert the args into an
>> acceptable String[] it would be super-helpful.
>> Thanks!
>> --peter
>> On 8/23/12 11:44 AM, "Kessler CTR Mark J" <mark.kessler.ctr@usmc.mil>
>> wrote:
>>> String.split(regexpattern)  can match pretty much anything.  Definitely
>>> would be able to comeup with a pattern to match embedded dashes.
>>> I'll see if I can come up with something that can properly strip down a
>>> completed command with arguments.  If you would give me a more complex
>>> command line that would be great.  I can test against it.
>>> Currently my setup uses few command line arguments and instead adds to
>>> the "-load-config+=mycustomconfig.xml"
>>> -----Original Message-----
>>> From: Peter Ent [mailto:pent@adobe.com]
>>> Sent: Thursday, August 23, 2012 10:52
>>> To: flex-dev@incubator.apache.org
>>> Subject: Re: Getting Mustella to work.
>>> I tried something like that, but there are options like: -source-path=
>>> with a hyphen in the option and a couple that begin with double
>>> I started to switch over to String.split(" -") to break apart on the
>>> space+dash but then ran into this mysterious problem of mxmlc not
>>> the arguments it was given, even though, as far as I can tell, it was
>>> getting the same ones in the same order. Obviously that wasn't the
>>> but had trouble tracking it down, so it is on hold for now while we get
>>> the tests to run, unless someone else wants to take a stab at it.
>>> --peter
>>> On 8/23/12 10:43 AM, "Kessler CTR Mark J" <mark.kessler.ctr@usmc.mil>
>>> wrote:
>>>> I'm not sure what Mustella is written in, but would something generic
>>>> like this work?
>>>> If a string needs to be turned into an array then maybe... Use the "-"
>>>> as the first delimiter to break apart the options and use a temp
>>>> Then use the "=" to break out the names from the values.
>>>> Keeping two arrays with the same number of elements.  One array stores
>>>> the argument name and the second argument value.
>>>> //Declare arrays/string
>>>> string [] saNames = {"Option1", "Option2", "Option3"}; string []
>>>> saValues = {"My value with spaces", "test2", "test 3"}; string
>>>> sCombinedOptions = "";
>>>> //Loop through all elements in arrays
>>>> for (;;)
>>>> {
>>>>   //Combine names / values.
>>>>   sCombinedOptions += saNames[currentItem] + "=""" +
>>>> saValues[currentItem] + """ "; }
>>>> //Add the command line and options.
>>>> "path\mxmlc.exe" + " " + sCombinedOptions;
>>>> -----Original Message-----
>>>> From: Peter Ent [mailto:pent@adobe.com]
>>>> Sent: Thursday, August 23, 2012 9:33
>>>> To: flex-dev@incubator.apache.org
>>>> Subject: Re: Getting Mustella to work.
>>>> That ought to work, but does not. The Mustella code pieces together a
>>>> large string with all of the options on it, then turns the string into
>>>> a String[] by using space as the delimiter. Thus
>>>> -source-path="C:\Program Files\Common Files\Microsoft
>>>> Shared\MSInfo\MSInfo32.exe"
>>>> turns into
>>>> [] = -source-path="C:\Program Files\Common [] = Files\Microsoft [] =
>>>> Shared\MSInfo\MSInfo32.exe"
>>>> And it does this several times (turning the array into a string,
>>>> inserting other args, back to an array) to build up the argument list.
>>>> Ultimately, the array of options is passed over to mxmlc to execute,
>>>> it does need to turn into an array of options. I was working on
>>>> everything into an ArrayList but more and more code needed to change
>>>> and then I was getting errors from mxmlc saying parameters were being
>>>> mixed which I didn't understand since it was getting the same
>>>> parameters in the same order.
>>>> So I have to re-think the approach.
>>>> --peter
>>>> On 8/23/12 6:59 AM, "Kessler CTR Mark J" <mark.kessler.ctr@usmc.mil>
>>>> wrote:
>>>>> I know this may sound silly, but windows deals with the spaces in
>>>>> using quotes around the whole path.  Is there something similar with
>>>>> Mustella?
>>>>> So a windows command prompt example, I could do something like the
>>>>> following...
>>>>> "C:\Program Files\Common Files\Microsoft Shared\MSInfo\MSInfo32.exe"
>>>>> Whereas the old non spaced dos style naming convention would do this
>>>>> without quotes..
>>>>> c:\progra~1\common~1\micros~1\msinfo\MSInfo32.exe
>>>>> r/s
>>>>> -Mark
>>>>> -----Original Message-----
>>>>> From: Peter Ent [mailto:pent@adobe.com]
>>>>> Sent: Wednesday, August 22, 2012 9:20
>>>>> To: flex-dev@incubator.apache.org
>>>>> Subject: Re: Getting Mustella to work.
>>>>> I have not have luck solving the problem. It is much trickier than I
>>>>> anticipated. I am going to jump back into getting more tests to run
>>>>> and think more about the problem. Operating systems have allowed
>>>>> spaces in file names for many, many years and you'd think would be an
>>>>> easily solvable problem (or not even a problem at all).
>>>>> --peter
>>>>> On 8/21/12 11:12 PM, "Justin Mclean" <justin@classsoftware.com>
>>>>>> Hi,
>>>>>> If the space path issue was fixed you have more to add. Any luck
>>>>>> that yet?
>>>>>> Justin
>Alex Harui
>Flex SDK Team
>Adobe Systems, Inc.

View raw message