1 | # Can't use exit in this script, since the script will be sourced
|
---|
2 | # The calling script will end up exiting too, if we exit here
|
---|
3 |
|
---|
4 | # Uses GLIMODE which would have been set by the calling (client-)gli script.
|
---|
5 | # This script sets GSDLHOME and _version, if a GS installation can be found.
|
---|
6 | # May also set GSDL3SRCHOME and GSDL3HOME if a GS3 installation was found.
|
---|
7 |
|
---|
8 |
|
---|
9 | # Prints a message if the greenstone version is unknown, depending on whether
|
---|
10 | # the calling script launches the client-gli or not
|
---|
11 | function version_unknown {
|
---|
12 | # if GLIMODE is client, we can live without a local GS installation
|
---|
13 | if [ "x$GLIMODE" == "xclient" ]; then
|
---|
14 | if [ "x$GLILANG" = "en" -o "x$GLILANG" = "x" ]; then
|
---|
15 | echo "Could not detect a Greenstone installation (no GSDLHOME)."
|
---|
16 | fi
|
---|
17 | # otherwise GLIMODE is not client, in which case it is an error to not know the version
|
---|
18 | else
|
---|
19 | if [ "x$GLILANG" = "en" -o "x$GLILANG" = "x" ]; then
|
---|
20 | echo "Error: can't determine which Greenstone version is being run."
|
---|
21 | fi
|
---|
22 | fi
|
---|
23 | echo
|
---|
24 | }
|
---|
25 |
|
---|
26 | # Function that, when given gsdlpath as parameter, will return the
|
---|
27 | # version of greenstone that is to run (2 or 3). If the version remains
|
---|
28 | # unknown this script will return 1.
|
---|
29 | function get_version {
|
---|
30 | # first parameter is value of gsdlpath
|
---|
31 | if [ -f "${1}/gs3-setup.sh" ]; then
|
---|
32 | return 3
|
---|
33 | elif [ -f "${1}/setup.bash" ]; then
|
---|
34 | return 2
|
---|
35 | else
|
---|
36 | # print message and return 1, which is not a valid Greenstone version
|
---|
37 | version_unknown
|
---|
38 | return 1
|
---|
39 | fi
|
---|
40 | }
|
---|
41 |
|
---|
42 | # Function that is passed the following paramters (in order):
|
---|
43 | # - the gsdlpath (GS3 home, GS2 home or gs2build for GS3),
|
---|
44 | # - the version of greenstone that's running, and
|
---|
45 | # - the language GLI is set to
|
---|
46 | # and checks the installation.
|
---|
47 | # If things are not right, this program will exit here.
|
---|
48 | function check_installation {
|
---|
49 | # Check that the Greenstone installation looks OK
|
---|
50 | if [ "$3" = "es" ]; then
|
---|
51 | echo "Revisando GSDL$2: $1"
|
---|
52 | elif [ "$3" = "fr" ]; then
|
---|
53 | echo "Vérification de GSDL$2: $1"
|
---|
54 | elif [ "$3" = "ru" ]; then
|
---|
55 | echo "ðÒÏ×ÅÒËÁ GSDL$2: $1"
|
---|
56 | else
|
---|
57 | echo "Checking GSDL$2: $1"
|
---|
58 | fi
|
---|
59 | # even if we are only checking for gs2build (gsdl2path), we still
|
---|
60 | # need the file setup.bash to exist in the following condition:
|
---|
61 | if [ ! -f "${1}/gs3-setup.sh" -a ! -f "${1}/setup.bash" ] ; then
|
---|
62 | echo
|
---|
63 | if [ "$3" = "es" ]; then
|
---|
64 | echo "No se pudo encontrar la instalación de Greenstone $2 o está incompleta."
|
---|
65 | echo "Trate de reinstalar Greenstone $2 y a continuación ejecute nuevamente"
|
---|
66 | echo "este guión."
|
---|
67 | elif [ "$3" = "fr" ]; then
|
---|
68 | echo "L'installation de Greenstone $2 est introuvable ou incomplète."
|
---|
69 | echo "Essayez de réinstaller Greenstone $2 et exécutez ce script à nouveau."
|
---|
70 | elif [ "$3" = "ru" ]; then
|
---|
71 | echo "éÎÓÔÁÌÌÑÃÉÑ Greenstone $_version ÎÅ ÂÙÌÁ ÎÁÊÄÅÎÁ ÉÌÉ ÏÎÁ ÎÅÐÏÌÎÁ."
|
---|
72 | echo "ðÏÐÒÏÂÕÊÔÅ ÐÏ×ÔÏÒÎÏ ÕÓÔÁÎÏ×ÉÔØ Greenstone $2, Á ÚÁÔÅÍ ××ÅÓÔÉ ÜÔÏÔ ÓËÒÉÐÔ ÓÎÏ×Á."
|
---|
73 | else
|
---|
74 | echo "The Greenstone $2 installation could not be found, or is incomplete."
|
---|
75 | echo "Try reinstalling Greenstone $2 then running this script again."
|
---|
76 | fi
|
---|
77 | exit 1
|
---|
78 | fi
|
---|
79 | }
|
---|
80 |
|
---|
81 |
|
---|
82 | ## ---- Determine GSDLHOME ----
|
---|
83 | ## gsdlpath can be either Greenstone 3 or Greenstone 2
|
---|
84 | gsdlpath=
|
---|
85 | # Some users may set the above line manually
|
---|
86 |
|
---|
87 |
|
---|
88 | # This variable is set automatically:
|
---|
89 | _version=
|
---|
90 | if [ "x$gsdlpath" != "x" ]; then
|
---|
91 | get_version "$gsdlpath"
|
---|
92 | _version=$?
|
---|
93 | # otherwise $gsdlpath is not yet set
|
---|
94 | else
|
---|
95 | # Check the environment variable first
|
---|
96 | # Check whether environment variables for both GS2 and GS3 are set
|
---|
97 | # and if so, warn the user that we have defaulted to GS3
|
---|
98 | if [ "x$GSDLHOME" != "x" -a "x$GSDL3SRCHOME" != "x" ]; then
|
---|
99 | # _version not set, but both env vars set, so default to 3
|
---|
100 | _version=3
|
---|
101 | gsdlpath="$GSDL3SRCHOME"
|
---|
102 | echo "Both Greenstone 2 and Greenstone 3 environments are set."
|
---|
103 | echo "It is assumed you want to run Greenstone 3."
|
---|
104 | echo "If you want to run Greenstone 2, please unset the"
|
---|
105 | echo "environment variable GSDL3SRCHOME before running GLI."
|
---|
106 | echo ""
|
---|
107 | elif [ "x$GSDL3SRCHOME" != "x" ]; then
|
---|
108 | echo "Only gsdl3srchome set"
|
---|
109 | gsdlpath="$GSDL3SRCHOME"
|
---|
110 | _version=3
|
---|
111 | echo "$gsdlpath"
|
---|
112 | elif [ "x$GSDLHOME" != "x" ]; then
|
---|
113 | gsdlpath="$GSDLHOME"
|
---|
114 | _version=2
|
---|
115 | # If it is not set, assume that the GLI is installed as a subdirectory of Greenstone
|
---|
116 | else
|
---|
117 | gsdlpath=`(cd .. && pwd)`
|
---|
118 | # Still need to find what version we are running:
|
---|
119 | # GS3 main directory contains file gs3-setup.sh, GS2 only setup.bash
|
---|
120 | get_version "$gsdlpath"
|
---|
121 | _version=$?
|
---|
122 | fi
|
---|
123 | fi
|
---|
124 |
|
---|
125 | # if it's an invalid greenstone version, we exit the script here
|
---|
126 | if [ "$_version" -lt 2 ]; then
|
---|
127 | return $_version;
|
---|
128 | fi
|
---|
129 |
|
---|
130 | echo "Greenstone version found: $_version"
|
---|
131 |
|
---|
132 | # Check that the main Greenstone installation for the version we're running looks OK
|
---|
133 | check_installation "$gsdlpath" "$_version" "$glilang"
|
---|
134 |
|
---|
135 |
|
---|
136 | # Need to source the correct setup file depending on whether we are running
|
---|
137 | # gs3 or gs2
|
---|
138 | # If we're running version GS2
|
---|
139 | if [ "$_version" -eq 2 ]; then
|
---|
140 | # Setup Greenstone 2, unless it has already been done
|
---|
141 | if [ "x$GSDLHOME" = "x" ]; then
|
---|
142 | cd "$gsdlpath"
|
---|
143 | . ./setup.bash
|
---|
144 | cd "$thisdir"
|
---|
145 | fi
|
---|
146 | # else, if we're running GS3
|
---|
147 | elif [ "$_version" -eq 3 ]; then
|
---|
148 | # Setup Greenstone 3, unless it has already been done
|
---|
149 | if [ "x$GSDL3HOME" = "x" -o "x$GSDL3SRCHOME" = "x" ]; then
|
---|
150 | cd "$gsdlpath"
|
---|
151 | . ./gs3-setup.sh
|
---|
152 | cd "$thisdir"
|
---|
153 | fi
|
---|
154 |
|
---|
155 | ## if Greenstone version 3 is running, we want to set gsdl2path
|
---|
156 | ## ---- Determine GSDLHOME ----
|
---|
157 | ## may be already set, or manually entered here.
|
---|
158 | gsdl2path=
|
---|
159 |
|
---|
160 | # Some users may set the above line manually
|
---|
161 | if [ "x$gsdl2path" = "x" ]; then
|
---|
162 | # Check the environment variable first
|
---|
163 | if [ "x$GSDLHOME" != "x" ]; then
|
---|
164 | echo "GSDLHOME environment variable is set to $GSDLHOME."
|
---|
165 | echo "Will use this to find build scripts."
|
---|
166 | gsdl2path="$GSDLHOME"
|
---|
167 | # If it is not set, assume that the gs2build subdirectory of Greenstone 3 exists
|
---|
168 | else
|
---|
169 | gsdl2path="$GSDL3SRCHOME/gs2build"
|
---|
170 | fi
|
---|
171 | fi
|
---|
172 | # Check that Greenstone 3's Greenstone 2 stuff looks OK (in gs2build)
|
---|
173 | check_installation "$gsdl2path" "" "$glilang"
|
---|
174 |
|
---|
175 | # Setup Greenstone 3's gs2build, unless it has already been done
|
---|
176 | if [ "x$GSDLHOME" = "x" ]; then
|
---|
177 | cd "$gsdl2path"
|
---|
178 | . ./setup.bash
|
---|
179 | cd "$thisdir"
|
---|
180 | fi
|
---|
181 |
|
---|
182 | else
|
---|
183 | echo "Greenstone version unknown."
|
---|
184 | return 1
|
---|
185 | fi
|
---|
186 |
|
---|
187 | echo
|
---|
188 | if [ "x$GSDL3SRCHOME" != "x" ]; then
|
---|
189 | echo "GSDL3SRCHOME is: $GSDL3SRCHOME"
|
---|
190 | fi
|
---|
191 | if [ "x$GSDL3HOME" != "x" ]; then
|
---|
192 | echo "GSDL3HOME is: $GSDL3HOME"
|
---|
193 | fi
|
---|
194 | if [ "x$GSDLHOME" != "x" ]; then
|
---|
195 | echo "GSDLHOME is: $GSDLHOME"
|
---|
196 | fi
|
---|
197 | echo |
---|