:-D
complex to write .... easy to use ;-)
On Dec 22, 2009, at 10:38 AM, David Avendasora wrote:
> And you call my way "complex"?
>
> You keep using that word. I don't think it means what you think it
> means.
>
> :-D
>
> Dave
>
>
> On Dec 22, 2009, at 10:28 AM, Kieran Kelleher wrote:
>
>> FYI, Just to followup on this.........
>>
>> Well, it works, but the biggest PITA was the jumping thru hoops to
>> assign a filepath-containing-spaces to a variable and then to feed
>> it into awk. What a bunch of garbage. All because the "Application
>> Support" dir has a stupid space in it. Also the trick is to convert
>> the property names by replacing .'s, etc with underscores,
>> otherwise bash balks. The result is that I get a bunch of shell
>> variables defined as follows (when run in Linux for example) as a
>> result of the WOLips properties workspace preference:
>>
>> org_objectstyle_wolips_preference_AutoEOGenerateOnBuild=true
>> org_objectstyle_wolips_preference_CapureAntOutput=true
>> org_objectstyle_wolips_wolipsPropertiesFile=wolips.533.properties
>> wo_apps_root=/var/wo533/Library/WebObjects/Applications
>> wo_bootstrapjar=/var/wo533/Library/WebObjects/JavaApplications/
>> wotaskd.woa/WOBootstrap.jar
>> wo_extensions=/Library/WebObjects/NoExtensions
>> wo_local_frameworks=/var/wo533//Library/Frameworks
>> wo_local_root=/
>> wo_network_frameworks=/Network/Library/Frameworks
>> wo_network_root=/Network
>> wo_system_frameworks=/var/wo533/Library/Frameworks
>> wo_system_root=/var/wo533/System
>> wo_user_frameworks=/home/admin/Library/Frameworks
>> wo_user_root=/home/admin
>>
>>
>> Here is a little snippet from preflight portion of the script in
>> case some other poor soul wants to incorporate such unstructured
>> antiquated obscure twiddling with custom wolips props in workspace
>> bash scripts! :-)
>>
>> <snip>
>> ############# Begin Utility Functions #############
>>
>> ## Works for scripts executed like this:
>> # ./doscript.sh
>> # /opt/scripts/doscript.sh
>> # ./mydir/scripts/anotherdir/doscript.sh
>> function script_dir {
>> CUR_WORKING_DIR=`pwd`
>> SCRIPT_EXEC_CMD=$0
>> SCRIPT_EXEC_DIR=`dirname $0`
>> cd $SCRIPT_EXEC_DIR
>> SCRIPT_DIR=`pwd`
>> ## go back to working dir
>> cd $CUR_WORKING_DIR
>> echo "$SCRIPT_DIR"
>> }
>>
>> ## Get parent dir of a file or dir
>> # the arg can have a trailing / and it still works
>> function parent_dir {
>> FILE_TO_CHECK=$1
>> # Remove trailing / if exists
>> FILE_NO_SLASH="${FILE_TO_CHECK%/}"
>> # Get parent dir
>> PARENT_DIR="${FILE_NO_SLASH%/*}"
>> echo "$PARENT_DIR"
>> }
>>
>> ## Gets eclipse workspace dir
>> ## looks for presence of a dir named ".metadata/.plugins/
>> org.eclipse.core.runtime"
>> function eclipse_workspace {
>>
>> # Get the script dir
>> WKSPACE_DIR=`script_dir`
>>
>> while [ -z ${ECLIPSE_WORKSPACE} ]; do
>> # get parent dir
>> WKSPACE_DIR=`parent_dir $WKSPACE_DIR`
>> if [ -d "${WKSPACE_DIR}/.metadata/.plugins/
>> org.eclipse.core.runtime" ]; then
>> ECLIPSE_WORKSPACE=$WKSPACE_DIR
>> fi
>> done
>>
>> echo "$ECLIPSE_WORKSPACE"
>> }
>>
>> ## reads in a java-style properties file, replacing non-alpha-digit-
>> underscore characters in the property names with underscore
>> function read_properties_file {
>> # For both linux/osx compatability we need to use mktemp -t form
>> and pick a reasonably unique name
>> TEMPFILE=$(mktemp -t "wolips.tmp."`date +"%Y%m%d_%H%M%S"`)
>> cat ${1} | \
>> awk 'BEGIN { FS="="; } \
>> /^\#/ { print; } \
>> !/^\#/ { if (NF == 2) { n = $1; gsub(/[^A-Za-z0-9_]/,"_",n); print
>> n "=\"" $2 "\""; } else { print; } }' \
>> >$TEMPFILE
>> source $TEMPFILE
>> rm $TEMPFILE
>> }
>>
>> ############# End Utility Functions #############
>>
>> # Read in the eclipse workspace wolips preferences file. It
>> complains on two properties that we don't care about, but it
>> successfully
>> # reads and sets the other properties
>> read_properties_file `eclipse_workspace`/.metadata/.plugins/
>> org.eclipse.core.runtime/.settings/
>> org.objectstyle.wolips.preferences.prefs
>>
>> # Stupidity because bash scripts cannot handle spaces in filenames
>> in an efficient and effective way
>> # Google for 'bash filenames with spaces' and you will find this
>> solution appears to be the only one
>> # This step is slow as molasses in OS X Tiger, but instantly fast
>> in Linux - go figure
>> find "${HOME}/Library" -path "*/Application Support/WOLips*" -name
>> "${org_objectstyle_wolips_wolipsPropertiesFile}" | while read
>> WOLIPS_PROPERTIES_FILE; do
>> echo "processing $WOLIPS_PROPERTIES_FILE"
>> if [ -e "$WOLIPS_PROPERTIES_FILE" ]; then
>> # And because the awk function pukes if we quote the variable, we
>> just ln this path-with-spaces
>> # to a temporary file path with no spaces and then proceed in the
>> usual care-free scripting way
>> ln -sfF "$WOLIPS_PROPERTIES_FILE" /tmp/$
>> {org_objectstyle_wolips_wolipsPropertiesFile}
>> fi
>> done
>>
>> read_properties_file /tmp/$
>> {org_objectstyle_wolips_wolipsPropertiesFile}
>>
>> # Check if it worked
>> echo "wo_local_frameworks is ${wo_local_frameworks}"
>> </snip>
>>
>>
>>
>>
>>
>> On Dec 21, 2009, at 1:49 PM, Kieran Kelleher wrote:
>>
>>> Good idea Jeremy. Made two clean workspaces with this property
>>> different in both and used diff tool.
>>>
>>> Turns out the value is in a plain Properties formatted file at:
>>>
>>> workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
>>> org.objectstyle.wolips.preferences.prefs
>>>
>>> and the property is:
>>> org
>>> .objectstyle
>>> .wolips.wolipsPropertiesFile=<wolips_properties_file_name>
>>>
>>> Great ...... I can just grab the property from there and stuff it
>>> into ant build files and bash scripts. .... much better than David
>>> Avendasora's complex workaround on the wiki ;-)
>>>
>>> Regards, Kieran
>>>
>>> PS. Just kidding with ya David A. :-)
>>>
>>>
>>> On Dec 21, 2009, at 1:14 PM, Jeremy Matthews wrote:
>>>
>>>> Diffing tool?
>>>>
>>>> -j
>>>>
>>>> On Dec 21, 2009, at 11:56 AM, Kieran Kelleher wrote:
>>>>
>>>>> I have a bash script that runs relative to the workspace and I
>>>>> need to include the current wolips properties file by accessing
>>>>> the value as specified in Eclipse/Preferences/WOLips/Build/
>>>>> WOLips Properties File setting. I was expecting that this pref
>>>>> might be stored somewhere in the workspace's .metadata dir, but
>>>>> if it is I cannot find it..... any hints?
>>>>>
>>>>> -Kieran
>>>>
>>>
>>
>
> David Avendasora
> Senior Software Engineer
> K12, Inc.
>
> *****
> WebObjects Documentation Wiki : http://wiki.objectstyle.org/confluence/display/WO/
> *****
> WebObjects API: http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html
> *****
>
This archive was generated by hypermail 2.0.0 : Tue Dec 22 2009 - 10:41:31 EST