root / tags / rel_1_1_1 / install.sh

Revision 7027, 8.1 kB (checked in by miker, 2 years ago)

adding DBVER to install.sh

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1#!/bin/bash
2# --------------------------------------------------------------------
3# Copyright (C) 2005  Georgia Public Library Service
4# Bill Erickson <highfalutin@gmail.com>
5#
6# This program is free software; you can redistribute it and/or
7# modify it under the terms of the GNU General Public License
8# as published by the Free Software Foundation; either version 2
9# of the License, or (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15# --------------------------------------------------------------------
16
17
18# --------------------------------------------------------------------
19# ILS install script
20# --------------------------------------------------------------------
21CONFIG_FILE="install.conf";
22DEFAULT_CONFIG_FILE="install.conf.default";
23verbose="-s" #clear this to get full build output
24
25
26# --------------------------------------------------------------------
27# Loads all of the path information from the user setting
28# install variables as it goes
29# --------------------------------------------------------------------
30
31function fail {
32        MSG="$1";
33        echo "A build error occured: $MSG";
34        exit 99;
35}
36
37
38#function postMessage {
39
40#cat <<-WORDS
41#       --------------------------------------------------------------------
42
43
44#}
45
46
47
48# --------------------------------------------------------------------
49# Makes sure the install directories exist and are writable
50# --------------------------------------------------------------------
51
52function mkDir {
53        mkdir -p "$1";
54        [ "$?" != "0" ] && fail "Error creating $1";
55        [ ! -w "$1" ] && fail "We don't have write access to $1";
56}
57
58function mkInstallDirs {
59
60        installing      && mkDir "$PREFIX";
61        building        && mkDir "$TMP";
62        installing      && mkDir "$SOCK";
63        installing      && mkDir "$PID";
64        installing      && mkDir "$LOG";
65
66
67        # add the opensrf user and group
68         if installing; then
69                if [ ! $(grep "^opensrf:" /etc/group) ]; then groupadd opensrf; fi
70                if [ ! $(grep "^opensrf:" /etc/passwd) ]; then useradd -g opensrf opensrf; fi
71                # add opensrf to the opensrf group
72                gpasswd -a opensrf opensrf
73        fi;
74
75}
76
77function installing {
78        if [ -z "$INSTALLING" ]; then return 1; fi;
79        return 0;
80}
81
82function building {
83        if [ -z "$BUILDING" ]; then return 1; fi;
84        return 0;
85}
86
87
88
89# --------------------------------------------------------------------
90# Loads the config file.  If it can't fine CONFIG_FILE, it attempts to
91# use DEFAULT_CONFIG_FILE.  If it can't find that, it fails.
92# --------------------------------------------------------------------
93function loadConfig {
94        if [ ! -f "$CONFIG_FILE" ]; then
95                if [ -f "$DEFAULT_CONFIG_FILE" ]; then
96                        echo "+ + + Copying $DEFAULT_CONFIG_FILE to $CONFIG_FILE and using its settings...";
97                        cp "$DEFAULT_CONFIG_FILE" "$CONFIG_FILE";
98                else
99                        fail "config file \"$CONFIG_FILE\" cannot be found";
100                fi
101        fi
102        source "$CONFIG_FILE";
103}
104
105
106
107
108function runInstall {
109
110        # pass the collected variables to make
111        for target in ${TARGETS[@]:0}; do
112
113                echo ""
114                echo "-------------- [ $target ] -------------------------------------------";
115                echo ""
116
117                MAKE="make $verbose APXS2=$APXS2 PREFIX=$PREFIX TMP=$TMP APR_HEADERS=$APR_HEADERS \
118                        APACHE2_HEADERS=$APACHE2_HEADERS LIBXML2_HEADERS=$LIBXML2_HEADERS DBPORT=$DBPORT\
119                        BINDIR=$BINDIR LIBDIR=$LIBDIR PERLDIR=$PERLDIR INCLUDEDIR=$INCLUDEDIR \
120                        WEBDIR=$WEBDIR TEMPLATEDIR=$TEMPLATEDIR ETCDIR=$ETCDIR REPORTERDIR=$REPORTERDIR\
121                        OPENSRFDIR=$OPENSRFDIR OPENILSDIR=$OPENILSDIR EVERGREENDIR=$EVERGREENDIR \
122                        CIRCRULESDIR=$CIRCRULESDIR CATALOGSCRIPTDIR=$CATALOGSCRIPTDIR CGIDIR=$CGIDIR \
123                        DBDRVR=$DBDRVR DBHOST=$DBHOST DBVER=$DBVER DATADIR=$DATADIR ADMINDIR=$ADMINDIR\
124                        PENALTYRULESDIR=$PENALTYRULESDIR DBNAME=$DBNAME DBUSER=$DBUSER DBPW=$DBPW XSLDIR=$XSLDIR NEW_OPAC_URL=$NEW_OPAC_URL \
125                        NEW_XUL_PACKAGE_NAME=$NEW_XUL_PACKAGE_NAME NEW_XUL_PACKAGE_LABEL=$NEW_XUL_PACKAGE_LABEL";
126
127
128                case "$target" in
129       
130                        # OpenSRF ---                   
131
132                        "opensrf_all")
133                                if building;    then $MAKE -C "$OPENSRFDIR" all; fi;
134                                if installing; then $MAKE -C "$OPENSRFDIR" install; fi;
135                                ;;
136
137                        "opensrf_jserver" )
138                                if building;    then $MAKE -C "$OPENSRFDIR" "jserver"; fi;
139                                if installing; then $MAKE -C "$OPENSRFDIR" "jserver-install"; fi;
140                                ;;     
141
142                        "opensrf_router" )
143                                if building;    then $MAKE -C "$OPENSRFDIR" "router"; fi;
144                                if installing; then $MAKE -C "$OPENSRFDIR" "router-install"; fi;
145                                ;;
146
147                        "opensrf_gateway" )
148                                if building; then $MAKE -C "$OPENSRFDIR" "gateway"; fi;
149                                if installing; then $MAKE -C "$OPENSRFDIR" "gateway-install"; fi;
150                                ;;
151
152                        "opensrf_srfsh" )
153                                if building;    then $MAKE -C "$OPENSRFDIR" "srfsh"; fi;
154                                if installing; then $MAKE -C "$OPENSRFDIR" "srfsh-install"; fi;
155                                ;;
156
157                        "opensrf_core" )
158                                if building; then $MAKE -C "$OPENSRFDIR" libstack/opensrf; fi;
159                                if installing; then $MAKE -C "$OPENSRFDIR" "perl-install"; fi;
160                                ;;
161
162
163                        # OpenILS ---                   
164
165                        "openils_all" )
166                                if building;    then $MAKE -C "$OPENILSDIR" all; fi;
167                                if installing; then $MAKE -C "$OPENILSDIR" install; fi;
168                                ;;
169
170                        "openils_core" )
171                                if building; then $MAKE -C "$OPENILSDIR" "c_apps"; fi;
172                                if installing; then 
173                                        $MAKE -C "$OPENILSDIR" "perl-install";
174                                        $MAKE -C "$OPENILSDIR" "string-templates-install";
175                                        $MAKE -C "$OPENILSDIR" "xsl-install";
176                                        $MAKE -C "$OPENILSDIR" "c_apps-install";
177                                        $MAKE -C "$OPENILSDIR" "circ_rules-install";
178                                        $MAKE -C "$OPENILSDIR" "autojs-install";
179                                fi;
180                                ;;
181
182                        "openils_web" )
183                                if building; then $MAKE -C "$OPENILSDIR" "mod_xmlent"; fi;
184                                #if building; then $MAKE -C "$OPENILSDIR" "mod_ils_rest_gateway"; fi;
185                                if installing; then
186                                        $MAKE -C "$OPENILSDIR" "web-install";
187                                        $MAKE -C "$OPENILSDIR" "cgi-bootstrap";
188                                        $MAKE -C "$OPENILSDIR" "reporter-install";
189                                fi;
190                                ;;
191
192                        "openils_marcdumper" )
193                                if building;    then $MAKE -C "$OPENILSDIR" "marcdumper"; fi;
194                                if installing; then $MAKE -C "$OPENILSDIR" "marcdumper-install"; fi;
195                                ;;
196
197                        "openils_db" )
198                                if installing; then 
199                                        $MAKE -C "$OPENILSDIR" "storage-bootstrap";
200                                fi;
201                                ;;
202
203                        "openils_reporter" )
204                                if installing; then 
205                                        $MAKE -C "$OPENILSDIR" "reporter-install";
206                                fi;
207                                ;;
208
209                        "openils_client_xul" )
210                                if building; then
211                                        $MAKE -C "$OPENILSDIR" "client-xul";
212                                fi;
213                                ;;
214
215                        "openils_server_xul" )
216                                if installing; then
217                                        $MAKE -C "$OPENILSDIR" "server-xul";
218                                fi;
219                                ;;
220
221                        # Evergreen ---                         
222
223                        "evergreen_core" )
224                                if installing;  then $MAKE -C "$EVERGREENDIR" "circ-install"; fi;
225                                if installing;  then $MAKE -C "$EVERGREENDIR" "iplist-install"; fi;
226                                if installing;  then $MAKE -C "$EVERGREENDIR" "perl-install"; fi;
227                                ;;     
228
229                        "evergreen_xul_client" )
230                                if building;    then $MAKE -C "$EVERGREENDIR" xul; fi;
231                                ;;
232
233
234                        *) fail "Unknown target: $target";;
235
236                esac
237
238        done
239
240        if installing; then
241                echo -e "\nNow run: chown -R opensrf:opensrf $PREFIX"
242        fi
243}
244
245
246# --------------------------------------------------------------------
247# Checks command line parameters for special behavior
248# Supported params are:
249# clean - cleans all build files
250# build - builds the specified sources
251# install - installs the specified sources
252# --------------------------------------------------------------------
253function checkParams {
254
255        if [ -z "$1" ]; then usage; fi;
256
257        for arg in "$@"; do
258
259                lastArg="$arg";
260
261                case "$arg" in
262
263                        "clean")
264                                cleanMe;;
265
266                        "build")
267                                BUILDING="1";;
268
269                        "install")
270                                INSTALLING="1";;
271                       
272                        "verbose")
273                                verbose="";;
274
275                        *) fail "Unknown option => $arg";
276                esac
277        done
278
279        if [ "$lastArg" = "clean" ]; then exit 0; fi;
280}
281
282
283function cleanMe {
284        loadConfig;
285        make "TMP=$TMP" -s -C "$OPENSRFDIR" clean;
286        make "TMP=$TMP" -s -C "$OPENILSDIR"  clean;
287        make "TMP=$TMP" -s -C "$EVERGREENDIR" clean;
288}
289
290function usage {
291        echo "usage: $0 [ build | install | clean ]";
292        exit;
293}
294
295checkParams "$@";
296
297if building; then echo "Building..."; fi;
298if installing; then echo "Installing..."; fi;
299
300
301# --------------------------------------------------------------------
302# Kick it off...
303# --------------------------------------------------------------------
304loadConfig;
305mkInstallDirs;
306runInstall;
307
308
Note: See TracBrowser for help on using the browser.