Re: wolips preferences file

From: Kieran Kelleher (kieran_list..ac.com)
Date: Tue Dec 22 2009 - 10:40:41 EST

  • Next message: Ray Kiddy: "errors and warnings? more than just 100?"

    :-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