# ---
# weinre is available under *either* the terms of the modified BSD license *or* the
# MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
#
# Copyright (c) 2010, 2011 IBM Corporation
# ---

#------------------------------------------------------------------------------
# example of a personal.properties file
#------------------------------------------------------------------------------
# Create a file called personal.properties in this directory, and it will
# you to override property settings during the build.
#
# The personal.properties file is set to not be stored in the SCM.
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# your name, which will be included in the build artifacts
#------------------------------------------------------------------------------
BUILDER:      Your Name in Lights

#------------------------------------------------------------------------------
# Set to anything to enable the build posting a "done" message to Growl.
# Delete or comment out to not use Growl.
#------------------------------------------------------------------------------
USE_GROWL:    yup

#------------------------------------------------------------------------------
# Set to anything to enable compiling the Java code with Eclipse.
# Delete or comment out to compile the Java code with javac.
#------------------------------------------------------------------------------
#USE_ECLIPSE:  yup
