OpenGrok revision 477c09a2656e6a2c1075425ad81e61d594164fa9
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder#!/bin/sh
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
e6d40133bc9f858308654afb1262b8b483ec5922Till Mossakowski# OpenGrok Wrapper (initial setup and cron job updating)
d5fe06af711a6912ae028ebf873eada4ee8733f8Christian Maeder#
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder# Supported Operating Systems:
2eeec5240b424984e3ee26296da1eeab6c6d739eChristian Maeder# - Solaris 10 (SunOS 5.10)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - OpenSolaris (SunOS 5.11)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - Debian (Linux)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
e6d40133bc9f858308654afb1262b8b483ec5922Till Mossakowski# Supported Deployment Engines:
49588f3d624e56594d888bc622bc90618ae3c2c5Till Mossakowski# - Tomcat 6
57d320fc4d0fe1a1c08cfe6cd9ebec09b86c2cbfTill Mossakowski# - Tomcat 5.5
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - Glassfish
49588f3d624e56594d888bc622bc90618ae3c2c5Till Mossakowski#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# Supported Environment Variables:
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - OPENGROK_NON_INTERACTIVE Suppress Progress and Warnings Messages (*)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - OPENGROK_STANDARD_ENV Run Time Shell Environment (Shell Script)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - OPENGROK_CONFIGURATION User Configuration (Shell Script)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# Supported Environment Variables for configuring the default setup:
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - OPENGROK_DISTRIBUTION_BASE Base Directory of the OpenGrok Distribution
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - OPENGROK_INSTANCE_BASE Base Directory of the OpenGrok User Data Area
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - EXUBERANT_CTAGS Full Path to Exuberant CTags
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# - JAVA_HOME Full Path to Java Installation Root
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder# - OPENGROK_APP_SERVER Application Server ("Tomcat" or "Glassfish")
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder# - OPENGROK_WAR_TARGET_TOMCAT Tomcat Specific WAR Target Directory
1842453990fed8a1bd7a5ac792d7982c1d2bfcd5Christian Maeder# - OPENGROK_WAR_TARGET_GLASSFISH Glassfish Specific WAR Target Directory
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder# - OPENGROK_WAR_TARGET Fallback WAR Target Directory
36f69d35e01d2d6b6bdc165b49661f2a80af8687Mihai Codescu# - OPENGROK_TOMCAT_BASE Base Directory for Tomcat (contains webapps)
2272b992302eb61b2a039033cb8cdaf7809fe682Christian Maeder# - OPENGROK_GLASSFISH_BASE Base Directory for Glassfish (contains domains)
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus Luettich# - OPENGROK_GLASSFISH_DOMAIN Preferred Glassfish Domain Name
36f69d35e01d2d6b6bdc165b49661f2a80af8687Mihai Codescu# - OPENGROK_VERBOSE Enable Verbose Mode in opengrok.jar (*)
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder# - OPENGROK_REMOTE_REPOS Disable History Cache for (remote) Repositories (*)
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder# - OPENGROK_SCAN_REPOS Disable Scan for repositories (*)_
f9e0b18852b238ddb649d341194e05d7200d1bbeChristian Maeder# - OPENGROK_SCAN_DEPTH how deep should scanning for repos go (by default 3 directories from SRC_ROOT)
697e63e30aa3c309a1ef1f9357745111f8dfc5a9Christian Maeder# - OPENGROK_DERBY if set, then indexer tries to use derby as historycache (see derby command of this script)
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder#
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder# - READ_XML_CONFIGURATION file with read only configuration - a temp workaround for bug # 327
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski#
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder# Notes:
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# (*) Any Non-Empty String will enable these options
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder# Usage
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich#
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus LuettichUsage()
e5b79e9fe9606fd386dc840ea9f1514e7b9b32b9Christian Maeder{
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich echo 1>&2
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder echo "Usage: ${0} <deploy|derby|update|updateQuietly|usage>" 1>&2
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu echo " ${0} index [<directory>]" 1>&2
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu echo 1>&2
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu echo " Optional environment variables:" 1>&2
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich echo " OPENGROK_CONFIGURATION - location of your configuration" 1>&2
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder echo " e.g. $ OPENGROK_CONFIGURATION=/var/opengrok/myog.conf ${0} ... " 1>&2
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder echo 1>&2
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder echo " See the code for more information on configuration options / variables" 1>&2
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy echo 1>&2
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder exit 1
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder}
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder#
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder# Runtime Configuration
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder#
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian MaederOS_NAME="`/bin/uname -s`"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian MaederOS_VERSION="`/bin/uname -r`"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder# TODO: Handle symlinks correctly (especially in ${0})
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian MaederSCRIPT_DIRECTORY="`dirname ${0}`"
9a80079e082fdf4fe8e19f8fc61e6cd8799b47a7Christian MaederSCRIPT_DIRECTORY="`cd ${SCRIPT_DIRECTORY}; pwd`"
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski#
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder# Default Instance Configuration
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder#
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian MaederDefaultInstanceConfiguration()
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder{
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # Use the built-in defaults. This section can be copied to its own
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # file and tailored to your local requirements. Then simply set
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # OPENGROK_CONFIGURATION=/path/to/your/configuration, before using
9a80079e082fdf4fe8e19f8fc61e6cd8799b47a7Christian Maeder # this wrapper. It will save you hand editing in your settings
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski # on each new release. A sample cron(1M) entry might look like:
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski # 15 0 * * * OPENGROK_CONFIGURATION=/pkgs/etc/OpenGrok.sh /pkgs/sbin/OpenGrok updateQuietly
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski # Note: It is not really possible to ever provided defaults for
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # these values which will run in every UNIX-like environment.
8ca41bee48c7322dbaa5ac27328836b3d15b3d8fTill Mossakowski # So I have provided a set which are functional for a given
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski # environment on which you can based you own configuration.
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # This has been updated to support more environment variables and
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski # operating systems, if you have any reasonably generic
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # improvements please feel free to submit a patch.
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-/var/opengrok}"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder LOGGER_CONFIG_FILE="logging.properties"
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder if [ -z "${OPENGROK_DISTRIBUTION_BASE}" ]
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder then
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder if [ -d "${SCRIPT_DIRECTORY}/dist" -a \
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder -f "${SCRIPT_DIRECTORY}/dist/opengrok.jar" -a \
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder -f "${SCRIPT_DIRECTORY}/dist/source.war" \
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski ]
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder then
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # Handle Developer Build Environments
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder OPENGROK_DISTRIBUTION_BASE="${SCRIPT_DIRECTORY}/dist"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder LOGGER_CONF_SOURCE="${SCRIPT_DIRECTORY}/${LOGGER_CONFIG_FILE}"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder else
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # Handle Binary Distributions
9a80079e082fdf4fe8e19f8fc61e6cd8799b47a7Christian Maeder OPENGROK_DISTRIBUTION_BASE="${SCRIPT_DIRECTORY}/../lib"
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski LOGGER_CONF_SOURCE="${OPENGROK_DISTRIBUTION_BASE}/../doc/${LOGGER_CONFIG_FILE}"
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski fi
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder fi
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # REQUIRED: Source Code/Repository Root
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # (your source code or the root of all repositories)
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder SRC_ROOT="${OPENGROK_INSTANCE_BASE}/src"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # REQUIRED: OpenGrok Generate Data Root
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # (for Lucene index and hypertext cross-references)
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # This area is rebuilt by "update" / "updateQuietly"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder DATA_ROOT="${OPENGROK_INSTANCE_BASE}/data"
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # OPTIONAL: User Provided Source Path to Description Mapping (Tab Separated Value)
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder # (The user maintained source of the generated EftarFile file)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder PATH_DESC="${OPENGROK_INSTANCE_BASE}/etc/paths.tsv"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
df75389b9266b115f0dc71a97679aec3dc0e48e1Christian Maeder # REQUIRED: XML Configuration
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder # (the configuration used by Web/GUI interfaces)
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder XML_CONFIGURATION="${OPENGROK_INSTANCE_BASE}/etc/configuration.xml"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder # OPTIONAL: read only XML config, if it exists, it will be read
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder READ_XML_CONFIGURATION="${READ_XML_CONFIGURATION:-}"
cd6e5706893519bfcf24539afa252fcbed5097ddKlaus Luettich
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettich if [ -f "${READ_XML_CONFIGURATION}" ] ; then
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski READ_XML_CONF="-R ${READ_XML_CONFIGURATION}"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder fi
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder # REQUIRED: Logger Configuration
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder LOGGER_CONFIG_PATH="${OPENGROK_INSTANCE_BASE}/${LOGGER_CONFIG_FILE}"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder LOGGER_PROPERTIES="-Djava.util.logging.config.file=${LOGGER_CONFIG_PATH}"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder # REQUIRED: Java Archive of OpenGrok (Installation Location)
433bb7cb49200f4e6c7341101da25309e423c0e2Christian Maeder OPENGROK_JAR="${OPENGROK_DISTRIBUTION_BASE}/opengrok.jar"
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski # REQUIRED(deploy): Web Archive of OpenGrok (Distribution Location)
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettich # (user building from source code will find this and other key
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder # files in the "dist" directory after the build is completed)
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder OPENGROK_DIST_WAR="${OPENGROK_DISTRIBUTION_BASE}/source.war"
da955132262baab309a50fdffe228c9efe68251dCui Jian
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder # REQUIRED: Exuberant CTags (http://ctags.sf.net)
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettich EXUBERANT_CTAGS="${EXUBERANT_CTAGS:-`FindExuberantCTags`}"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder # REQUIRED: Java Home
99634745e86bb1c79da4e2b376e580f65ee67082Klaus Luettich JAVA_HOME="${JAVA_HOME:-`FindJavaHome`}"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder export JAVA_HOME
209f37a7f7b3c61e5dc1a90bd83b65a24c8be3faChristian Maeder
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder # REQUIRED: Java Virtual Machine
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu JAVA="${JAVA:-$JAVA_HOME/bin/java}"
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder # DEVELOPMENT: Debug option, if enabled current indexer will listen on the port 8010 until a debugger connects
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder #JAVA_DEBUG="-agentlib:jdwp=transport=dt_socket,server=y,address=8010,suspend=y"
ebdce567033765c1f16ccf25d721c02986a5da33Klaus Luettich
36f69d35e01d2d6b6bdc165b49661f2a80af8687Mihai Codescu # OPTIONAL: Ignore these patterns as names of files or directories
038fc609b1d0dfe9698c4cab26fc7db2225820efMihai Codescu #IGNORE_PATTERNS="-i dummy"
b4deba573a8057214f2d18512ba0a948c26d5582Christian Maeder
b4deba573a8057214f2d18512ba0a948c26d5582Christian Maeder # OPTIONAL: Enable Projects
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # (Every directory in SRC_ROOT is considered a separate project)
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder ENABLE_PROJECTS="-P"
f2c050360525df494e6115073b0edc4c443a847cMihai Codescu
f2c050360525df494e6115073b0edc4c443a847cMihai Codescu # OPTIONAL: Scanning Options (for Mercurial repositories)
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder SCAN_FOR_REPOSITORY="-S"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder if [ -n "${OPENGROK_SCAN_REPOS}" ]
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder then
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder SCAN_FOR_REPOSITORY=""
63324a97283728a30932828a612c7b0b0f687624Christian Maeder fi
63324a97283728a30932828a612c7b0b0f687624Christian Maeder
63324a97283728a30932828a612c7b0b0f687624Christian Maeder # OPTIONAL: Remote Repository Support (CVS or SVN)
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder # (Can be very time demanding, uncomment if needed)
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder REMOTE_REPOSITORIES="-r on"
33c33fde308de14d34177617a28524312f5f0ad8Christian Maeder if [ -n "${OPENGROK_REMOTE_REPOS}" ]
dada658692dfbbd04b7a08cdc4826616f84ad6efChristian Maeder then
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder REMOTE_REPOSITORIES=""
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder fi
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder # OPTIONAL: override depth of scanning for repositories
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder if [ -n "${OPENGROK_SCAN_DEPTH}" ]
594891d02ecf595cd5fdd12e8036e686f1b90ddfChristian Maeder then
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski SCAN_DEPTH="-z${OPENGROK_SCAN_DEPTH}"
63324a97283728a30932828a612c7b0b0f687624Christian Maeder fi
209f37a7f7b3c61e5dc1a90bd83b65a24c8be3faChristian Maeder
209f37a7f7b3c61e5dc1a90bd83b65a24c8be3faChristian Maeder # OPTIONAL: Allow Leading Wildcard Searches
209f37a7f7b3c61e5dc1a90bd83b65a24c8be3faChristian Maeder # (default: off)
209f37a7f7b3c61e5dc1a90bd83b65a24c8be3faChristian Maeder #LEADING_WILDCARD="-a on"
63324a97283728a30932828a612c7b0b0f687624Christian Maeder
a975722baf6fee1ca3e67df170c732c4abd0a945Christian Maeder # OPTIONAL: Web Site Look & Feel
a975722baf6fee1ca3e67df170c732c4abd0a945Christian Maeder # (Options: default, offwhite and polished.
63324a97283728a30932828a612c7b0b0f687624Christian Maeder # Note the quoting requirements)
8244e8866cad2be73b7e2b76a6659535f0f728ccChristian Maeder #SKIN='-L "default"'
8244e8866cad2be73b7e2b76a6659535f0f728ccChristian Maeder
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder # OPTIONAL: Set Maximum Indexed Words Per File
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder # Note, that you might run out of memory, then either increase JVM memory
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder # as noted in JAVA_OPTS, or set this limit(if you don't mind opengrok not
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # indexing the rest of the file, once the limit is reached)
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy # (default: unlimited)
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder #MAX_INDEXED_WORDS="-m 100000"
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy # OPTIONAL: Configuration Address (host:port)
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy # (conf/web.xml default is localhost:2424)
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy WEBAPP_CONFIG_ADDRESS="-U localhost:2424"
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu # OPTIONAL: JVM Options
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski #JAVA_OPTS="-server -Xmx2048m"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder JAVA_OPTS="-Xmx2048m"
64325303fc09fc4d88ced49be11ff2d29966422aCui Jian
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder # OPTIONAL: Full Path to History Utilities
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder HG="`Which hg`"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder CVS="`Which cvs`"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder SVN="`Which svn`"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder SCCS="`Which sccs`"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder CLEARCASE="`Which cleartool`"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder GIT="`Which git`"
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder P4="`Which p4`"
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder MTN="`Which mtn`"
709653bffee501341e2fdc55b9223e4921047c65Till Mossakowski BZR="`Which bzr`"
709653bffee501341e2fdc55b9223e4921047c65Till Mossakowski
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # OPTIONAL: Override Built-in Properties
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu # Assumption: We should not set properties to the empty string
5efed683fd173e9d53bd5f1929ba5b0c8a228710Christian Maeder PROPERTIES="\
17d4f8c5576d93f36cafe68161cdb960ec49ce7cChristian Maeder${HG:+-Dorg.opensolaris.opengrok.history.Mercurial=$HG} \
64325303fc09fc4d88ced49be11ff2d29966422aCui Jian${CVS:+-Dorg.opensolaris.opengrok.history.cvs=$CVS} \
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder${SVN:+-Dorg.opensolaris.opengrok.history.Subversion=$SVN} \
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder${SCCS:+-Dorg.opensolaris.opengrok.history.SCCS=$SCCS} \
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder${CLEARCASE:+-Dorg.opensolaris.opengrok.history.ClearCase=$CLEARCASE} \
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder${GIT:+-Dorg.opensolaris.opengrok.history.git=$GIT} \
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder${P4:+-Dorg.opensolaris.opengrok.history.Perforce=$P4} \
522e92d98ffff311567afdfce0530f86dcf164abIgor Stassiy${MTN:+-Dorg.opensolaris.opengrok.history.Monotone=$MTN} \
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich${BZR:+-Dorg.opensolaris.opengrok.history.Bazaar=$BZR} \
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich"
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # OPTIONAL: Store The History Cache in Java DB (derby),
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # instead of file system (in gzipped xml files).
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich #
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # Requirements:
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # - derbyclient.jar - See README.txt for more details
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # - Running Derby Server - Defaults to localhost:1527
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder #
a4e6fb26100f53e3b1e9f5b97c2e0a0c129294e5Christian Maeder if [ -n "${OPENGROK_DERBY}" ]
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu then
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski DERBY_HISTORY_CACHE="-D"
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus Luettich fi
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu # DELIVERED: An update program for EftarFile
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu # Usage: <class> inputFile [inputFile ...] outputFile
da955132262baab309a50fdffe228c9efe68251dCui Jian # EftarFile == An Extremely Fast Tagged Attribute Read-only File System
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich EFTAR_UPDATE="org.opensolaris.opengrok.web.EftarFile"
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # HARDCODED: Generated EftarFile (See web/*.jsp)
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich EFTAR_OUTPUT_FILE="${DATA_ROOT}/index/dtags.eftar"
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # Be Quiet? (set indirectly by command line arguments in the main program)
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich #QUIET=""
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich # or alternatively, Be Verbose!
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich #VERBOSE="-v"
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus Luettich if [ -n "${OPENGROK_VERBOSE}" ]
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder then
71654489020a03cf6ce9f2947f3da26a996f9c32Razvan Pascanu VERBOSE="-v"
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski QUIET=""
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus Luettich fi
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu}
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus Luettich
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus Luettich#
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder# Helper Functions - Logging
8ca41bee48c7322dbaa5ac27328836b3d15b3d8fTill Mossakowski#
5cf0f23d6436a66629796c8d5b67698571dde55eChristian Maeder# In general, non-interactive use like cron jobs and automated
5cf0f23d6436a66629796c8d5b67698571dde55eChristian Maeder# installation environments should not generate unnecessary
999f839e42d594e4ae288208fec398626837c41cTill Mossakowski# progress information or warnings, as usage and configuration
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder# will have generally been debugged prior to automation.
f9aa644af131a2571514a7e5bbd8901e32ad6273Markus Gross#
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder
1ac36418f204bbe56f4cd951a979180721758999Christian MaederProgress()
f9aa644af131a2571514a7e5bbd8901e32ad6273Markus Gross{
833baa690207430f9cc3ca599039954a7840fa30Klaus Luettich if [ -z "${OPENGROK_NON_INTERACTIVE}" ]
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder then
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich echo "${@}"
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich fi
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich}
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus LuettichWarning()
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich{
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich if [ -z "${OPENGROK_NON_INTERACTIVE}" ]
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich then
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich echo "WARNING: ${@}" 1>&2
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder fi
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu}
ad69cb3627839ed3d33f13d71c81378b65a24b35Till Mossakowski
7c8051ef91610c696bc9fa2e61ad1b153fbe7ce0Klaus LuettichError()
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu{
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder echo "ERROR: ${@}" 1>&2
fdf94376fa12e6f685f87741be2f3d02e03c429eChristian Maeder}
fdf94376fa12e6f685f87741be2f3d02e03c429eChristian Maeder
fdf94376fa12e6f685f87741be2f3d02e03c429eChristian MaederFatalError()
d4cb5f03c55f0aeff72f06dac61e1af24479ddd9Rainer Grabbe{
fdf94376fa12e6f685f87741be2f3d02e03c429eChristian Maeder echo 1>&2
9b4526ad3c7428b8c3c0ad9ee5d8268acdeee606Till Mossakowski echo "FATAL ERROR: ${@} - Aborting!" 1>&2
d4cb5f03c55f0aeff72f06dac61e1af24479ddd9Rainer Grabbe echo 1>&2
d4cb5f03c55f0aeff72f06dac61e1af24479ddd9Rainer Grabbe ${DO} exit 2
1ac36418f204bbe56f4cd951a979180721758999Christian Maeder}
8f5219469b89a15dc6d4c2c30463775975f5841cRazvan Pascanu
#
# Helper Functions - Autodetection of Runtime Environment
#
Which()
{
path="`which ${1} 2>/dev/null`"
if [ -x "${path}" ]
then
echo "${path}"
fi
}
FindExuberantCTags()
{
case "${OS_NAME}:${OS_VERSION}" in
SunOS:5.10) commandName="" ;;
SunOS:5.11) commandName="exctags" ;;
Linux:*) commandName="ctags-exuberant" ;;
*) commandName="" ;;
esac
if [ -z "${commandName}" ]
then
Error "Unable to determine Exuberant CTags command name" \
"for ${OS_NAME} ${OS_VERSION}"
return
fi
Which "${commandName}"
}
FindJavaHome()
{
case "${OS_NAME}:${OS_VERSION}" in
SunOS:5.10) javaHome="/usr/jdk/instances/jdk1.6.0" ;;
SunOS:5.11) javaHome="/usr/jdk/latest" ;;
Linux:*) javaHome="/usr/lib/jvm/java-6-sun" ;;
*) javaHome="" ;;
esac
if [ -z "${javaHome}" ]
then
Error "Unable to determine Java 6 Home" \
"for ${OS_NAME} ${OS_VERSION}"
return
fi
if [ ! -d "${javaHome}" ]
then
Error "Missing Java Home ${javaHome}"
return
fi
echo "${javaHome}"
}
FindApplicationServerType()
{
# Use this function to determine which environment the deploy the
# web application function into. Some users (especially
# developers) will have many deployment environments or will wish
# to specify directly the application server to deploy to.
# Either use the environment variable OPENGROK_APP_SERVER or
# reimplement this function in your configuration file (as
# specified by OPENGROK_CONFIGURATION)
if [ -n "${OPENGROK_APP_SERVER}" ]
then
echo "${OPENGROK_APP_SERVER}"
return
fi
# This implementation favours Tomcat, but needs a lot of work,
# especially if Glassfish is perferrerd or it is under the control
# of SMF (Service Management Facility)
# Maybe a better implementation would be to call Application
# Server specific WAR Directory and see if they exist.
if [ -d "/var/tomcat6/webapps" \
-o -d "/var/lib/tomcat6/webapps" \
-o -d "/var/lib/tomcat5.5/webapps" \
]
then
echo "Tomcat"
return
fi
if [ -x "/etc/init.d/appserv" -a -d "/var/appserver/domains" ]
then
echo "Glassfish"
return
fi
# Assume Tomcat
echo "Tomcat"
}
DetermineWarDirectoryTomcat()
{
if [ -n "${OPENGROK_WAR_TARGET_TOMCAT}" ]
then
echo "${OPENGROK_WAR_TARGET_TOMCAT}"
return
elif [ -n "${OPENGROK_WAR_TARGET}" ]
then
echo "${OPENGROK_WAR_TARGET}"
return
fi
for prefix in \
${OPENGROK_TOMCAT_BASE} \
/var/tomcat6 \
/var/lib/tomcat6 \
/var/lib/tomcat5.5 \
do
if [ -d "${prefix}/webapps" ]
then
echo "${prefix}/webapps"
return
fi
done
}
DetermineWarDirectoryGlassfish()
{
if [ -n "${OPENGROK_WAR_TARGET_GLASSFISH}" ]
then
echo "${OPENGROK_WAR_TARGET_GLASSFISH}"
return
elif [ -n "${OPENGROK_WAR_TARGET}" ]
then
echo "${OPENGROK_WAR_TARGET}"
return
fi
for prefix in \
${OPENGROK_GLASSFISH_BASE} \
/var/appserver \
do
if [ -d "${prefix}/domains" ]
then
if [ -z "${domainDirectory}" ]
then
domainDirectory="${prefix}/domains"
fi
fi
done
if [ -z "${domainDirectory}" ]
then
return
fi
# User Specified Domain
if [ -n "${OPENGROK_GLASSFISH_DOMAIN}" ]
then
directory="${domainDirectory}/${OPENGROK_GLASSFISH_DOMAIN}/autodeploy"
if [ ! -d "${directory}" ]
then
FatalError "Missing Specified Glassfish Domain ${OPENGROK_GLASSFISH_DOMAIN}"
fi
echo "${directory}"
return
fi
# Arbitrary Domain Selection
firstDomain=`ls -1 ${domainDirectory} | head -1`
if [ -z "${firstDomain}" ]
then
FatalError "Failed to dynamically determine Glassfish Domain from ${domainDirectory}"
fi
echo "${domainDirectory}/${firstDomain}/autodeploy"
}
#
# Implementation
#
# The variable "DO" can usefully be set to "echo" to aid in script debugging
#
LoadStandardEnvironment()
{
# Setup a standard execution environment (if required)
OPENGROK_STANDARD_ENV="${OPENGROK_STANDARD_ENV:-/pkgs/sbin/CronExecutionEnvironment.sh}"
if [ -f "${OPENGROK_STANDARD_ENV}" ]
then
Progress "Loading ${OPENGROK_STANDARD_ENV} ..."
. "${OPENGROK_STANDARD_ENV}"
fi
}
LoadInstanceConfiguration()
{
# Note: As all functions have been defined by the time this routine
# is called, your configuration can, if desired, override functions
# in addition to setting the variables mentioned in the function
# DefaultInstanceConfiguration(), this maybe useful to override
# functionality used to determine the default deployment environment
# find dependencies or validate the configuration, for example.
if [ -n "${OPENGROK_CONFIGURATION}" -a -f "${OPENGROK_CONFIGURATION}" ]
then
# Load the Local OpenGrok Configuration Environment
Progress "Loading ${OPENGROK_CONFIGURATION} ..."
. "${OPENGROK_CONFIGURATION}"
else
Progress "Loading the default instance configuration ..."
DefaultInstanceConfiguration
fi
}
ValidateConfiguration()
{
if [ ! -x "${EXUBERANT_CTAGS}" ]
then
FatalError "Missing Dependent Application - Exuberant CTags"
fi
if [ ! -d "${SRC_ROOT}" ]
then
FatalError "OpenGrok Source Path ${SRC_ROOT} doesn't exist"
fi
if [ -n "${QUIET}" -a -n "${VERBOSE}" ]
then
Warning "Both Quiet and Verbose Mode Enabled - Choosing Verbose"
QUIET=""
VERBOSE="-v"
fi
if [ -n "${OPENGROK_DERBY}" ]
then
Warning "CHECK: derbyclient.jar needs to be in where the rest of opengrok used jars are and in unpacked source.war in WEB-INF/lib !!!"
fi
}
CreateRuntimeRequirements()
{
if [ ! -d "${DATA_ROOT}" ]
then
Warning "OpenGrok generated data path ${DATA_ROOT} doesn't exist"
Progress " Attempting to create generated data directory ... "
${DO} mkdir -p "${DATA_ROOT}"
fi
if [ ! -d "${DATA_ROOT}" ]
then
FatalError "OpenGrok data path ${DATA_ROOT} doesn't exist"
fi
if [ ! -d "${OPENGROK_INSTANCE_BASE}/etc" ]
then
Warning "OpenGrok generated etc path ${OPENGROK_INSTANCE_BASE}/etc doesn't exist"
Progress " Attempting to create generated etc directory ... "
${DO} mkdir -p "${OPENGROK_INSTANCE_BASE}/etc"
fi
if [ ! -d "${OPENGROK_INSTANCE_BASE}/etc" ]
then
FatalError "OpenGrok etc path ${OPENGROK_INSTANCE_BASE}/etc doesn't exist"
fi
if [ -n "${LOGGER_CONFIG_PATH}" -a ! -f "${LOGGER_CONFIG_PATH}" ]
then
Progress " Creating default ${LOGGER_CONFIG_PATH} ... "
if [ ! -f "${LOGGER_CONF_SOURCE}" ]
then
Warning "Can't find distribution logging configuration" \
"(${LOGGER_CONF_SOURCE}) to install as default" \
"logging configuration (${LOGGER_CONFIG_PATH})"
else
${DO} grep -v java.util.logging.FileHandler.pattern "${LOGGER_CONF_SOURCE}" > "${LOGGER_CONFIG_PATH}"
${DO} grep java.util.logging.FileHandler.pattern "${LOGGER_CONF_SOURCE}" | sed "s|opengrok%g.%u.log|${OPENGROK_INSTANCE_BASE}/log/opengrok%g.%u.log|g" >> "${LOGGER_CONFIG_PATH}"
${DO} mkdir ${OPENGROK_INSTANCE_BASE}/log
fi
fi
if [ -n "${OPENGROK_DERBY}" ]
then
if [ ! -d "${OPENGROK_INSTANCE_BASE}/derby" ]
then
Warning "OpenGrok generated derby path ${OPENGROK_INSTANCE_BASE}/derby doesn't exist"
Progress " Attempting to create generated derby directory ... "
${DO} mkdir -p ${OPENGROK_INSTANCE_BASE}/derby
fi
fi
}
StdInvocation()
{
${DO} ${JAVA} ${JAVA_OPTS} ${PROPERTIES} \
${LOGGER_PROPERTIES} \
${JAVA_DEBUG} \
-jar ${OPENGROK_JAR} \
${IGNORE_PATTERNS} ${ENABLE_PROJECTS} \
${DERBY_HISTORY_CACHE} \
${SCAN_FOR_REPOSITORY} ${REMOTE_REPOSITORIES} \
${SCAN_DEPTH} \
${VERBOSE} ${QUIET} \
${EXUBERANT_CTAGS:+-c} ${EXUBERANT_CTAGS} \
${MAX_INDEXED_WORDS} ${SKIN} ${LEADING_WILDCARD} \
${READ_XML_CONF} \
-W ${XML_CONFIGURATION} \
${WEBAPP_CONFIG_ADDRESS} \
-s ${SRC_ROOT} -d ${DATA_ROOT} \
"${@}"
}
UpdateGeneratedData()
{
StdInvocation -H
}
UpdateDescriptionCache()
{
# OPTIONAL : Update the EftarFile data
if [ -n "${PATH_DESC}" -a -s "${PATH_DESC}" ]
then
${DO} ${JAVA} -classpath ${OPENGROK_JAR} \
${EFTAR_UPDATE} ${PATH_DESC} ${EFTAR_OUTPUT_FILE}
fi
}
OpenGrokUsage()
{
echo "Options for opengrok.jar:" 1>&2
${DO} ${JAVA} ${JAVA_OPTS} -jar ${OPENGROK_JAR} '-?'
}
DeployWar()
{
applicationServer="`FindApplicationServerType`"
case "${applicationServer}" in
Tomcat) warTarget="`DetermineWarDirectoryTomcat`" ;;
Glassfish) warTarget="`DetermineWarDirectoryGlassfish`" ;;
*) FatalError "Unsupported Application Server ${applicationServer}" ;;
esac
if [ -z "${warTarget}" ]
then
FatalError "Unable to determine Deployment Directory for ${applicationServer}"
fi
if [ ! -f "${OPENGROK_DIST_WAR}" ]
then
FatalError "Missing Web Application Archive ${OPENGROK_DIST_WAR}"
fi
if [ ! -d "${warTarget}" ]
then
FatalError "Missing Deployment Directory ${warTarget}"
fi
Progress "Installing ${OPENGROK_DIST_WAR} to ${warTarget} ..."
${DO} cp "${OPENGROK_DIST_WAR}" "${warTarget}/"
if [ $? != 0 ]
then
FatalError "Web Application Installation FAILED"
fi
Progress
Progress "Start your application server (${applicationServer}), if it is not already"
Progress "running, or wait until it loads the just installed web application."
Progress
Progress "OpenGrok should be available on <HOST>:<PORT>/source"
Progress " where HOST and PORT are configured in ${applicationServer}."
Progress
}
DerbyServer()
{
case "${OS_NAME}:${OS_VERSION}" in
SunOS:5.10) Error "unsupported OS" ;;
SunOS:5.11)
svcadm enable javadb
;;
Linux:*)
mkdir -p $DATA_ROOT/derby
java -Dderby.system.home=$DATA_ROOT/derby -jar /usr/lib/jvm/java-6-sun/db/lib/derbynet.jar start
;;
*) Error "unsupported OS" ;;
esac
}
#
# Main Program
#
if [ $# -eq 0 -o $# -gt 2 ]
then
Usage
fi
LoadStandardEnvironment
LoadInstanceConfiguration
case "${1}" in
deploy)
DeployWar
;;
derby)
ValidateConfiguration
CreateRuntimeRequirements
DerbyServer
;;
update)
ValidateConfiguration
CreateRuntimeRequirements
UpdateGeneratedData
UpdateDescriptionCache
;;
updateQuietly)
ValidateConfiguration
CreateRuntimeRequirements
QUIET="-q"
VERBOSE=""
UpdateGeneratedData
UpdateDescriptionCache
;;
index)
if [ -n "${2}" ]
then
SRC_ROOT="${2}"
fi
ValidateConfiguration
CreateRuntimeRequirements
UpdateGeneratedData
UpdateDescriptionCache
;;
usage)
OpenGrokUsage
Usage
;;
*)
Usage
;;
esac
#
# End of File
#