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
31 source "$CONFIG_FILE";
33 if [ -f "$DEFAULT_CONFIG_FILE" ]; then
34 source "$DEFAULT_CONFIG_FILE";
40 echo "-----------------------------------------------------------------------";
41 echo "Type Enter to select the default"
42 echo "-----------------------------------------------------------------------";
44 prompt "Install prefix [$PREFIX] ";
45 read X; if [ ! -z "$X" ]; then PREFIX="$X"; fi
47 BINDIR="$PREFIX/bin/";
48 LIBDIR="$PREFIX/lib/";
49 PERLDIR="$LIBDIR/perl5/";
50 INCLUDEDIR="$PREFIX/include/";
51 ETCDIR="$PREFIX/conf";
52 WEBDIR="$PREFIX/var/web";
53 DATADIR="$PREFIX/var/data";
54 CGIDIR="$PREFIX/var/cgi-bin";
55 TEMPLATEDIR="$PREFIX/var/templates";
56 CIRCRULESDIR="$PREFIX/var/circ";
57 PENALTYRULESDIR="$PREFIX/var/penalty";
58 XSLDIR="$PREFIX/var/xsl";
59 REPORTERDIR="$PREFIX/var/reporter";
62 prompt "Web domain for OPAC in Staff Client [$NEW_OPAC_URL] "
63 read X; if [ ! -z "$X" ]; then NEW_OPAC_URL="$X"; fi;
65 prompt "Package Name for Staff Client [$NEW_XUL_PACKAGE_NAME] "
66 read X; if [ ! -z "$X" ]; then NEW_XUL_PACKAGE_NAME="$X"; fi;
68 prompt "Package Label for Staff Client [$NEW_XUL_PACKAGE_LABEL] "
69 read X; if [ ! -z "$X" ]; then NEW_XUL_PACKAGE_LABEL="$X"; fi;
71 prompt "Apache2 apxs binary [$APXS2] "
72 read X; if [ ! -z "$X" ]; then APXS2="$X"; fi;
74 prompt "Apache2 headers directory [$APACHE2_HEADERS] "
75 read X; if [ ! -z "$X" ]; then APACHE2_HEADERS="$X"; fi;
77 prompt "Apache2 APR headers directory [$APR_HEADERS] "
78 read X; if [ ! -z "$X" ]; then APR_HEADERS="$X"; fi;
80 prompt "Libxml2 headers directory [$LIBXML2_HEADERS] "
81 read X; if [ ! -z "$X" ]; then LIBXML2_HEADERS="$X"; fi;
83 prompt "Build targets [${TARGETS[@]:0}] "
84 read X; if [ ! -z "$X" ]; then TARGETS=("$X"); fi;
86 prompt "Bootstrapping Database Driver [$DBDRVR] "
87 read X; if [ ! -z "$X" ]; then DBDRVR="$X"; fi;
89 prompt "Bootstrapping Database Host [$DBHOST] "
90 read X; if [ ! -z "$X" ]; then DBHOST="$X"; fi;
92 prompt "Bootstrapping Database Name [$DBNAME] "
93 read X; if [ ! -z "$X" ]; then DBNAME="$X"; fi;
95 prompt "Bootstrapping Database User [$DBUSER] "
96 read X; if [ ! -z "$X" ]; then DBUSER="$X"; fi;
98 prompt "Bootstrapping Database Password [$DBPW] "
99 read X; if [ ! -z "$X" ]; then DBPW="$X"; fi;
101 prompt "Reporter Template Directory [$REPORTERDIR] "
102 read X; if [ ! -z "$X" ]; then REPORTERDIR="$X"; fi;
107 function prompt { echo ""; echo -n "$*"; }
109 function writeConfig {
111 rm -f "$CONFIG_FILE";
112 echo "Writing installation config to $CONFIG_FILE...";
114 _write "PREFIX=\"$PREFIX\"";
115 _write "BINDIR=\"$BINDIR\"";
116 _write "LIBDIR=\"$LIBDIR\"";
117 _write "PERLDIR=\"$PERLDIR\"";
118 _write "INCLUDEDIR=\"$INCLUDEDIR\"";
119 _write "SOCK=\"$PREFIX/var/sock\"";
120 _write "PID=\"$PREFIX/var/pid\"";
121 _write "LOG=\"$PREFIX/var/log\"";
122 _write "DATADIR=\"$DATADIR\"";
124 _write "TMP=\"$TMP\"";
125 _write "APXS2=\"$APXS2\"";
126 _write "APACHE2_HEADERS=\"$APACHE2_HEADERS\"";
127 _write "APR_HEADERS=\"$APR_HEADERS\"";
128 _write "LIBXML2_HEADERS=\"$LIBXML2_HEADERS\"";
130 _write "WEBDIR=\"$WEBDIR\"";
131 _write "TEMPLATEDIR=\"$TEMPLATEDIR\"";
132 _write "ETCDIR=\"$ETCDIR\"";
133 _write "CIRCRULESDIR=\"$CIRCRULESDIR\"";
134 _write "PENALTYRULESDIR=\"$PENALTYRULESDIR\"";
135 _write "XSLDIR=\"$XSLDIR\"";
137 _write "NEW_OPAC_URL=\"$NEW_OPAC_URL\"";
138 _write "NEW_XUL_PACKAGE_NAME=\"$NEW_XUL_PACKAGE_NAME\"";
139 _write "NEW_XUL_PACKAGE_LABEL=\"$NEW_XUL_PACKAGE_LABEL\"";
141 # print out the targets
143 for target in ${TARGETS[@]:0}; do
144 STR="$STR \"$target\"";
149 _write "OPENSRFDIR=\"OpenSRF/src/\"";
150 _write "OPENILSDIR=\"Open-ILS/src/\"";
151 _write "EVERGREENDIR=\"Evergreen/\"";
154 _write "CGIDIR=\"$CGIDIR\"";
157 _write "DBDRVR=\"$DBDRVR\"";
158 _write "DBHOST=\"$DBHOST\"";
159 _write "DBNAME=\"$DBNAME\"";
160 _write "DBUSER=\"$DBUSER\"";
161 _write "DBPW=\"$DBPW\"";
162 _write "REPORTERDIR=\"$REPORTERDIR\"";
165 # Now we'll write out the DB bootstrapping config
166 CONFIG_FILE='Open-ILS/src/cgi-bin/setup.pl';
167 rm -f "$CONFIG_FILE";
168 echo "Writing bootstrapping config to $CONFIG_FILE...";
170 STR='$main::config{dsn} =';
171 STR="$STR 'dbi:${DBDRVR}:host=";
172 STR="${STR}${DBHOST};dbname=";
173 STR="${STR}${DBNAME}';";
176 STR='$main::config{usr} =';
177 STR="$STR '$DBUSER';";
180 STR='$main::config{pw} =';
184 _write '$main::config{index} = "config.cgi";';
189 prompt "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
190 prompt "!! If installing openils_all / openils_db !!";
191 prompt "!! Before running 'make install' you MUST !!";
192 prompt "!! create a database for Open-ILS. Use !!";
193 prompt "!! the settings that you listed above and !!";
194 prompt "!! the install scripts will create the !!";
195 prompt "!! database for you. -miker !!";
196 prompt "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
200 prompt "To write a new config, run 'make config'";
202 prompt "To edit individual install locations (e.g. changing the lib directory),"
203 prompt "edit the install.conf file generated from this script"
209 echo "$*" >> "$CONFIG_FILE";