2 # --------------------------------------------------------------------
3 # Copyright (C) 2005 Georgia Public Library Service
4 # Bill Erickson <highfalutin@gmail.com>
5 # Mike Rylander <mrylander@gmail.com>
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.
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 # --------------------------------------------------------------------
19 # --------------------------------------------------------------------
20 # Prompts the user for config settings and writes a custom config
21 # file based on these settings
22 # --------------------------------------------------------------------
25 CONFIG_FILE="install.conf";
26 DEFAULT_CONFIG_FILE="install.conf.default";
28 function buildConfig {
30 # if [ -f "$CONFIG_FILE" ]; then
32 # echo "Using existing config file \"$CONFIG_FILE\"";
33 # echo "To generate a new config, remove \"$CONFIG_FILE\"";
40 if [ -f "$DEFAULT_CONFIG_FILE" ]; then
41 source "$DEFAULT_CONFIG_FILE";
46 echo "-----------------------------------------------------------------------";
47 echo "Type Enter to select the default"
48 echo "-----------------------------------------------------------------------";
50 prompt "Temporary files directory [$TMP] "
51 read X; if [ ! -z "$X" ]; then TMP="$X"; fi;
53 prompt "Install prefix [$PREFIX] ";
55 if [ ! -z "$X" ]; then
57 BINDIR="$PREFIX/bin/";
58 LIBDIR="$PREFIX/lib/";
59 PERLDIR="$LIBDIR/perl5/";
60 INCLUDEDIR="$PREFIX/include/";
62 CGIDIR="$PREFIX/cgi-bin";
64 TEMPLATEDIR="$PREFIX/templates";
67 prompt "Executables directory [$BINDIR] "
68 read X; if [ ! -z "$X" ]; then BINDIR="$X"; fi;
70 prompt "Lib directory [$LIBDIR] "
71 read X; if [ ! -z "$X" ]; then LIBDIR="$X"; fi;
73 prompt "Perl directory [$PERLDIR] "
74 read X; if [ ! -z "$X" ]; then PERLDIR="$X"; fi;
76 prompt "Include files directory [$INCLUDEDIR] "
77 read X; if [ ! -z "$X" ]; then INCLUDEDIR="$X"; fi;
79 prompt "Config files directory [$ETCDIR] "
80 read X; if [ ! -z "$X" ]; then ETCDIR="$X"; fi;
82 prompt "Web Root Directory [$WEBDIR] "
83 read X; if [ ! -z "$X" ]; then WEBDIR="$X"; fi;
85 prompt "Web CGI Directory [$CGIDIR] "
86 read X; if [ ! -z "$X" ]; then CGIDIR="$X"; fi;
88 prompt "Templates directory [$TEMPLATEDIR] "
89 read X; if [ ! -z "$X" ]; then TEMPLATEDIR="$X"; fi;
91 prompt "Apache2 apxs binary [$APXS2] "
92 read X; if [ ! -z "$X" ]; then APXS2="$X"; fi;
94 prompt "Apache2 headers directory [$APACHE2_HEADERS] "
95 read X; if [ ! -z "$X" ]; then APACHE2_HEADERS="$X"; fi;
97 prompt "Libxml2 headers directory [$LIBXML2_HEADERS] "
98 read X; if [ ! -z "$X" ]; then LIBXML2_HEADERS="$X"; fi;
100 prompt "Build targets [${TARGETS[@]:0}] "
101 read X; if [ ! -z "$X" ]; then TARGETS=("$X"); fi;
103 prompt "Bootstrapping Database Driver [$DBDRVR] "
104 read X; if [ ! -z "$X" ]; then DBDRVR="$X"; fi;
106 prompt "Bootstrapping Database Host [$DBHOST] "
107 read X; if [ ! -z "$X" ]; then DBHOST="$X"; fi;
109 prompt "Bootstrapping Database Name [$DBNAME] "
110 read X; if [ ! -z "$X" ]; then DBNAME="$X"; fi;
112 prompt "Bootstrapping Database User [$DBUSER] "
113 read X; if [ ! -z "$X" ]; then DBUSER="$X"; fi;
115 prompt "Bootstrapping Database Password [$DBPW] "
116 read X; if [ ! -z "$X" ]; then DBPW="$X"; fi;
121 function prompt { echo ""; echo -n "$*"; }
123 function writeConfig {
125 rm -f "$CONFIG_FILE";
126 echo "Writing installation config to $CONFIG_FILE...";
128 _write "PREFIX=\"$PREFIX\"";
129 _write "BINDIR=\"$BINDIR\"";
130 _write "LIBDIR=\"$LIBDIR\"";
131 _write "PERLDIR=\"$PERLDIR\"";
132 _write "INCLUDEDIR=\"$INCLUDEDIR\"";
134 _write "TMP=\"$TMP\"";
135 _write "APXS2=\"$APXS2\"";
136 _write "APACHE2_HEADERS=\"$APACHE2_HEADERS\"";
137 _write "LIBXML2_HEADERS=\"$LIBXML2_HEADERS\"";
139 _write "WEBDIR=\"$WEBDIR\"";
140 _write "TEMPLATEDIR=\"$TEMPLATEDIR\"";
141 _write "ETCDIR=\"$ETCDIR\"";
143 # print out the targets
145 for target in ${TARGETS[@]:0}; do
146 STR="$STR \"$target\"";
151 _write "OPENSRFDIR=\"OpenSRF/src/\"";
152 _write "OPENILSDIR=\"Open-ILS/src/\"";
153 _write "EVERGREENDIR=\"Evergreen/\"";
156 # Now we'll write out the DB bootstrapping config
157 CONFIG_FILE='Open-ILS/src/cgi-bin/setup.pl';
158 rm -f "$CONFIG_FILE";
159 echo "Writing bootstrapping config to $CONFIG_FILE...";
161 STR='$main::config{dsn} =';
162 STR="$STR 'dbi:${DBDRVR}:host=";
163 STR="${STR}${DBHOST};dbname=";
164 STR="${STR}${DBNAME}';";
167 STR='$main::config{usr} =';
168 STR="$STR '$DBUSER';";
171 STR='$main::config{pw} =';
175 _write '$main::config{index} = "config.html";';
180 prompt "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
181 prompt "!! Before running 'make install' you MUST !!";
182 prompt "!! create a database for Open-ILS. Use !!";
183 prompt "!! the settings that you listed above and !!";
184 prompt "!! the install scripts will create the !!";
185 prompt "!! database for you. -miker !!";
186 prompt "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
190 prompt "To write a new config, run 'make config'";
196 echo "$*" >> "$CONFIG_FILE";