source: gsdl/trunk/gs2-server.sh@ 20184

Last change on this file since 20184 was 19770, checked in by ak19, 15 years ago
  1. Search4j was previously given a hint that assumed that findjava was working with GLI instead of a more general case (such as gs2-server.sh). Now it is uses GSDLHOME to work out the hint. 2. PROGNAME needs to be passed in as a parameter for display. The script gs2-server.sh is now updated to pass PROGNAME as an additional argument to findjava.sh. 3. Instead of merely testing whether the search4j file exists, Oran suggested testing whether search4j file exists AND is executable. 4. Have already updated the findjava.sh script concurrently with this findjava.sh and also updated gli.sh and client-gli.sh.
  • Property svn:executable set to *
File size: 3.6 KB
RevLine 
[18852]1#!/bin/bash
[18682]2serverlang=en
3
4java_min_version=1.4.0_00
[19770]5PROGNAME="gs2-server"
[18682]6
7function autoset_gsdl_home() {
8
9 # remove leading ./ if present
[19158]10 prog="${0#./}"
[18682]11
[19158]12 isrelative="${prog%%/*}"
[18682]13
[19158]14 if [ ! -z "$isrelative" ] ; then
[18682]15 # some text is left after stripping
16 # => is relative
[19158]17 prog="$PWD/$prog"
[18682]18 fi
19
[19158]20 fulldir="${prog%/*}"
[18682]21
22 # remove trailing /. if present
[19158]23 eval "$1=\"${fulldir%/.}\""
[18682]24}
25
26function isinpath() {
27 for file in `echo $1 | sed 's/:/ /g'`; do
28 if [ "$file" == "$2" ]; then
29 echo true
30 return
31 fi
32 done
33 echo false
34}
35
36
37echo "Greenstone 2 Server"
38echo "Copyright (C) 2009, New Zealand Digital Library Project, University Of Waikato"
39echo "This software comes with ABSOLUTELY NO WARRANTY; for details see LICENSE.txt"
40echo "This is free software, and you are welcome to redistribute it"
41
42## -------- Run the Greenstone 2 Server --------
43
44## ---- Determine GSDLHOME ----
45gsdl2path=
46
47# Some users may set the above line manually
48if [ -z "$gsdl2path" ]; then
49 autoset_gsdl_home gsdl2path
50fi
51
52# Setup Greenstone2, unless it has already been done
53if [ -z "$GSDLHOME" ]; then
[19158]54 pushd "$gsdl2path" > /dev/null
[19739]55 source ./setup.bash
[18682]56 popd > /dev/null
57fi
58
[19040]59
60# First test that there is actually something that can be run...
61# Exit if the apache-httpd folder doesn't exist for some reason
62# (The errors reported when the apache webserver does not exist
63# in the correct location are not at all helpful).
64if [ ! -d "$GSDLHOME/apache-httpd" ]; then
65 echo ""
66 echo "UNABLE TO CONTINUE: There is no apache-httpd directory."
67 echo "It does not look like the local apache webserver has been installed."
68 echo "Exiting..."
69 echo ""
70 exit 1
71fi
72
[19023]73# If there's no llssite.cfg file, copy from the template
74if [ ! -e "$GSDLHOME/llssite.cfg" ]; then
75 if [ -e "$GSDLHOME/llssite.cfg.in" ]; then
[19158]76 cp "$GSDLHOME/llssite.cfg.in" "$GSDLHOME/llssite.cfg"
[19023]77 else
[19158]78 echo "Warning: could not find llssite.cfg.in to create llssite.cfg from."
[19023]79 fi
[19158]80fi
[18682]81
[19445]82## ---- Determine GSDLHOME ----
83# Set this to true if you want the Greenstone server interface to run in the background
84# and not print any error messages to the x-term.
[19450]85silent=
[19445]86
[18682]87# JRE_HOME or JAVA_HOME must be set correctly to run this program
88search4j -m $java_min_version &> /dev/null
[19739]89# for some reason, Mac requires an echo after the above
90echo
[18682]91if [ "$?" == "0" ]; then
92 # In Java code, '...getResourceAsStream("build.properties")'
93 # needs up to be in the right directory when run
[19158]94 pushd "$gsdl2path" > /dev/null
[18682]95
96
97 #CLASSPATH
98 if [ `isinpath "$CLASSPATH" "$GSDLHOME/lib/java"` == "false" ]; then
[19158]99 CLASSPATH="$GSDLHOME/lib/java:$CLASSPATH"
100 for JARFILE in lib/java/*.jar; do
101 CLASSPATH="$CLASSPATH:$GSDLHOME/$JARFILE"
102 done
103 export CLASSPATH
104 echo " - Adjusted CLASSPATH"
[18682]105
106 else
[19158]107 echo " - CLASSPATH already correct"
[18682]108 fi
109
[19738]110 ## ---- Check Java ----
111 # call the script with source, so that we have the variables it sets ($javapath)
112 exit_status=0
[19770]113 source ./findjava.sh "$serverlang" "$PROGNAME"
[19738]114 exit_status=$?
115 if [ "$exit_status" -eq 1 ]; then
116 exit 1;
117 fi
118
[19445]119 if [ "x$silent" == "x" -o "x$silent" != "xtrue" ]; then
120 # verbose mode, show all output, but then we can't run the server interface in the background
121 "$javapath" org.greenstone.server.Server2 "$GSDLHOME" "$serverlang" $*
122 else
123 # If we launch the Greenstone Server Interface application in the background (with & at end)
124 # need to redirect any STDERR (STDOUT) output to /dev/null first, else output will hog the x-term.
125 "$javapath" org.greenstone.server.Server2 "$GSDLHOME" "$serverlang" $* > /dev/null &
126 fi
[18682]127
128 popd > /dev/null
129fi
130
Note: See TracBrowser for help on using the repository browser.