root / tags / rel_1_0_6_1 / config.sh

Revision 6992, 6.1 kB (checked in by erickson, 2 years ago)

removed unused XUL options, updated some default paths to be more likely to match a real system

  • 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# Mike Rylander <mrylander@gmail.com>
6#
7# This program is free software; you can redistribute it and/or
8# modify it under the terms of the GNU General Public License
9# as published by the Free Software Foundation; either version 2
10# of the License, or (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU General Public License for more details.
16# --------------------------------------------------------------------
17
18
19# --------------------------------------------------------------------
20# Prompts the user for config settings and writes a custom config
21# file based on these settings
22# --------------------------------------------------------------------
23
24
25CONFIG_FILE="install.conf";
26DEFAULT_CONFIG_FILE="install.conf.default";
27USE_DEFAULT="$1";
28
29function buildConfig {
30
31        if [ -f "$CONFIG_FILE" ]; then
32                source "$CONFIG_FILE";
33        else
34                if [ -f "$DEFAULT_CONFIG_FILE" ]; then
35                        source "$DEFAULT_CONFIG_FILE";
36                fi;
37        fi;
38
39    if [ -n "$USE_DEFAULT" ]; then
40        prompt "Default config requested, not prompting for values...\n";
41        writeConfig;
42        return 0;
43    fi;
44
45
46        echo "";
47        echo "-----------------------------------------------------------------------";
48        echo "Type Enter to select the default"
49        echo "-----------------------------------------------------------------------";
50
51        prompt "Install prefix [$PREFIX] ";
52        read X; if [ ! -z "$X" ]; then PREFIX="$X"; fi
53
54        BINDIR="$PREFIX/bin/";
55        LIBDIR="$PREFIX/lib/";
56        PERLDIR="$LIBDIR/perl5/";
57        INCLUDEDIR="$PREFIX/include/";
58        ETCDIR="$PREFIX/conf";
59        WEBDIR="$PREFIX/var/web";
60        DATADIR="$PREFIX/var/data";
61        CGIDIR="$PREFIX/var/cgi-bin";
62        TEMPLATEDIR="$PREFIX/var/templates";
63        CIRCRULESDIR="$PREFIX/var/circ";
64        CATALOGSCRIPTDIR="$PREFIX/var/catalog";
65        PENALTYRULESDIR="$PREFIX/var/penalty";
66        XSLDIR="$PREFIX/var/xsl";
67        REPORTERDIR="$PREFIX/var/reporter";
68        TMP="$(pwd)/.tmp";
69        ADMINDIR="$PREFIX/var/admin";
70
71        prompt "Apache2 apxs binary [$APXS2] "
72        read X; if [ ! -z "$X" ]; then APXS2="$X"; fi;
73
74        prompt "Apache2 headers directory [$APACHE2_HEADERS] "
75        read X; if [ ! -z "$X" ]; then APACHE2_HEADERS="$X"; fi;
76
77        prompt "Apache2 APR headers directory [$APR_HEADERS] "
78        read X; if [ ! -z "$X" ]; then APR_HEADERS="$X"; fi;
79
80        prompt "Libxml2 headers directory [$LIBXML2_HEADERS] "
81        read X; if [ ! -z "$X" ]; then LIBXML2_HEADERS="$X"; fi;
82
83        prompt "Build targets [${TARGETS[@]:0}] "
84        read X; if [ ! -z "$X" ]; then TARGETS=("$X"); fi;
85
86        prompt "Bootstrapping Database Driver [$DBDRVR] "
87        read X; if [ ! -z "$X" ]; then DBDRVR="$X"; fi;
88
89        prompt "Bootstrapping Database Host [$DBHOST] "
90        read X; if [ ! -z "$X" ]; then DBHOST="$X"; fi;
91
92        prompt "Bootstrapping Database Port [$DBPORT] "
93        read X; if [ ! -z "$X" ]; then DBPORT="$X"; fi;
94
95        prompt "Bootstrapping Database Name [$DBNAME] "
96        read X; if [ ! -z "$X" ]; then DBNAME="$X"; fi;
97
98        prompt "Bootstrapping Database User [$DBUSER] "
99        read X; if [ ! -z "$X" ]; then DBUSER="$X"; fi;
100
101        prompt "Bootstrapping Database Password [$DBPW] "
102        read X; if [ ! -z "$X" ]; then DBPW="$X"; fi;
103
104        prompt "Reporter Template Directory [$REPORTERDIR] "
105        read X; if [ ! -z "$X" ]; then REPORTERDIR="$X"; fi;
106
107        writeConfig;
108}
109
110function prompt { echo ""; echo -en "$*"; }
111
112function writeConfig {
113
114        rm -f "$CONFIG_FILE";
115        echo "Writing installation config to $CONFIG_FILE...";
116
117        _write "PREFIX=\"$PREFIX\"";
118        _write "BINDIR=\"$BINDIR\"";
119        _write "LIBDIR=\"$LIBDIR\"";
120        _write "PERLDIR=\"$PERLDIR\"";
121        _write "INCLUDEDIR=\"$INCLUDEDIR\"";
122        _write "SOCK=\"$PREFIX/var/sock\"";
123        _write "PID=\"$PREFIX/var/pid\"";
124        _write "LOG=\"$PREFIX/var/log\"";
125        _write "DATADIR=\"$DATADIR\"";
126
127        _write "TMP=\"$TMP\"";
128        _write "APXS2=\"$APXS2\"";
129        _write "APACHE2_HEADERS=\"$APACHE2_HEADERS\"";
130        _write "APR_HEADERS=\"$APR_HEADERS\"";
131        _write "LIBXML2_HEADERS=\"$LIBXML2_HEADERS\"";
132
133        _write "WEBDIR=\"$WEBDIR\"";
134        _write "TEMPLATEDIR=\"$TEMPLATEDIR\"";
135        _write "ETCDIR=\"$ETCDIR\"";
136        _write "CIRCRULESDIR=\"$CIRCRULESDIR\"";
137        _write "CATALOGSCRIPTDIR=\"$CATALOGSCRIPTDIR\"";
138        _write "PENALTYRULESDIR=\"$PENALTYRULESDIR\"";
139        _write "XSLDIR=\"$XSLDIR\"";
140
141        # print out the targets
142        STR="TARGETS=(";
143        for target in ${TARGETS[@]:0}; do
144                STR="$STR \"$target\"";
145        done;
146        STR="$STR)";
147        _write "$STR";
148
149        _write "OPENSRFDIR=\"OpenSRF/src/\"";
150        _write "OPENILSDIR=\"Open-ILS/src/\"";
151        _write "EVERGREENDIR=\"Evergreen/\"";
152
153
154        _write "CGIDIR=\"$CGIDIR\"";
155
156        # db vars
157        _write "DBDRVR=\"$DBDRVR\"";
158        _write "DBHOST=\"$DBHOST\"";
159        _write "DBPORT=\"$DBPORT\"";
160        _write "DBNAME=\"$DBNAME\"";
161        _write "DBUSER=\"$DBUSER\"";
162        _write "DBPW=\"$DBPW\"";
163        _write "REPORTERDIR=\"$REPORTERDIR\"";
164        _write "ADMINDIR=\"$ADMINDIR\"";
165
166
167        # Now we'll write out the DB bootstrapping config
168        CONFIG_FILE='Open-ILS/src/cgi-bin/setup.pl';
169        rm -f "$CONFIG_FILE";
170        echo "Writing bootstrapping config to $CONFIG_FILE...";
171
172        STR='$main::config{dsn} =';
173                STR="$STR 'dbi:${DBDRVR}:host=";
174                STR="${STR}${DBHOST};dbname=";
175                STR="${STR}${DBNAME};port=";
176                STR="${STR}${DBPORT}';";
177        _write "$STR"
178
179        STR='$main::config{usr} =';
180                STR="$STR '$DBUSER';";
181        _write "$STR"
182       
183        STR='$main::config{pw} =';
184                STR="$STR '$DBPW';";
185        _write "$STR"
186       
187        _write '$main::config{index} = "config.cgi";';
188
189
190        prompt "";
191        prompt "";
192        prompt "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
193        prompt "!! If installing openils_all / openils_db !!";
194        prompt "!! Before running 'make install' you MUST !!";
195        prompt "!! create a database for Open-ILS.  Use   !!";
196        prompt "!! the settings that you listed above and !!";
197        prompt "!! the install scripts will create the    !!";
198        prompt "!! database for you.  -miker              !!";
199        prompt "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
200        prompt "";
201        prompt "";
202
203        prompt "To write a new config, run 'make config'";
204        prompt "";
205        prompt "To edit individual install locations (e.g. changing the lib directory),"
206        prompt "edit the install.conf file generated from this script"
207        prompt ""
208
209}
210
211function _write {
212        echo "$*" >> "$CONFIG_FILE";
213}
214
215
216
217buildConfig;
Note: See TracBrowser for help on using the browser.