Commit | Line | Data |
---|---|---|
0155bbac JD |
1 | #!/bin/bash |
2 | # IMPORTANT! This script assumes you have already installed OpenSRF. | |
3 | ||
79b2efa0 | 4 | HOSTNAME="nonprod" |
8da49eaf | 5 | DEFAULT_USER="opensrf" |
bd4a0e27 | 6 | INSTALL_USER="opensrf" |
9bb70e10 | 7 | BUILDDIR="/home/${INSTALL_USER}/evergreen" |
0155bbac | 8 | INSTALLDIR="/srv/openils" |
35e67cbd JD |
9 | BRANCH="user/jeffdavis/eg314-tpac" |
10 | STAMP_ID="rel_3_1_4" | |
11 | ALT_STAMP_IDS="3_1_4" | |
12 | VERSION="3.1.4.sitka.1" | |
9bb70e10 | 13 | SITKACONF="/home/${DEFAULT_USER}/sysadmin" |
227e13aa | 14 | SITKACONF_BRANCH="master" |
341cf34e | 15 | SITKATOOLS="/root/sitka-tools" |
0155bbac | 16 | |
605401cc JD |
17 | THISHOST=`hostname -s` |
18 | ||
e724d7db | 19 | suwrap() { |
e2ad4781 | 20 | su -s /bin/bash -c "source ~/.bashrc ; $1" $2 |
e724d7db JD |
21 | } |
22 | ||
519772ff | 23 | while getopts ":pecWbt" opt ; do |
24057702 JD |
24 | case $opt in |
25 | p ) PROD="prod";; | |
f3b555fc | 26 | e ) EDI="edi";; |
286e0b2b | 27 | c ) CRONTAB="crontab";; |
519772ff | 28 | W ) SKIPWEBCLIENT="skipwebclient";; |
57c67252 | 29 | b ) USEBUNDLE="usebundle";; |
be754493 | 30 | t ) TARBALL="tarball";; |
24057702 JD |
31 | esac |
32 | done | |
33 | shift $(($OPTIND - 1)) | |
34 | ||
35 | if [[ -n "$PROD" ]] ; then | |
36 | echo 'this is a production install' | |
34f86bbc | 37 | [ "$HOSTNAME" == "nonprod" ] && HOSTNAME="prod" |
24057702 JD |
38 | else |
39 | echo 'this is NOT a production install' | |
40 | fi | |
41 | ||
0155bbac JD |
42 | # as DEFAULT_USER |
43 | ||
44 | # grab Sitka config files | |
45 | if [ ! -d "${SITKACONF}" ] | |
46 | then | |
47 | # this will fail unless DEFAULT_USER has read access to the repo | |
519772ff | 48 | suwrap "cd /home/${DEFAULT_USER} && git clone git+ssh://git@git.sitka.bclibraries.ca/sitka-infra/sysadmin" ${DEFAULT_USER} || { echo "Could not get config files; exiting." ; exit 1; } |
0155bbac | 49 | fi |
519772ff | 50 | suwrap "cd ${SITKACONF} && git fetch origin && git checkout ${SITKACONF_BRANCH} && git pull" ${DEFAULT_USER} || { echo "Could not checkout ${SITKACONF_BRANCH} config files; exiting." ; exit 1; } |
0155bbac | 51 | |
be754493 | 52 | if [[ -n "$TARBALL" ]] ; then |
53 | EGRELEASE="Evergreen-ILS-${VERSION}" | |
490bb871 | 54 | EGRELEASETGZ="${EGRELEASE}.tar.gz" |
519772ff | 55 | [ ${VERSION} == "3.1.0" ] && EGRELEASETGZ="Evergreen-ILS-3.1.0a.tar.gz" |
be754493 | 56 | BUILDDIR="/home/${INSTALL_USER}/${EGRELEASE}" |
519772ff JD |
57 | BRANCH="$VERSION" |
58 | echo "installing packaged upstream release ${EGRELEASE}" | |
be754493 | 59 | # download and unpack EG release |
60 | rm -rf ${BUILDDIR} | |
519772ff JD |
61 | if [ ! -f "/home/${INSTALL_USER}/${EGRELEASETGZ}" ] ; then |
62 | suwrap "cd /home/${INSTALL_USER} && wget http://open-ils.org/downloads/${EGRELEASETGZ}" ${INSTALL_USER} || { echo "Could not download EG release tarball ${EGRELEASETGZ}" ; exit 1; } | |
be754493 | 63 | fi |
519772ff | 64 | suwrap "cd /home/${INSTALL_USER} && tar xzf ${EGRELEASETGZ}" ${INSTALL_USER} |
be754493 | 65 | else |
66 | # checkout EG source | |
67 | if [ ! -d "${BUILDDIR}" ] | |
68 | then | |
b81c2398 | 69 | suwrap "cd /home/${INSTALL_USER} && git clone git+ssh://git@git.sitka.bclibraries.ca/sitka/evergreen evergreen" ${INSTALL_USER} |
be754493 | 70 | fi |
71 | suwrap "cd ${BUILDDIR} && git fetch origin && git checkout ${BRANCH} && git pull" ${INSTALL_USER} | |
ae9cb412 | 72 | fi |
71f85432 | 73 | |
0155bbac JD |
74 | |
75 | # as root | |
35e67cbd | 76 | cd ${BUILDDIR} && make -f Open-ILS/src/extras/Makefile.install ubuntu-xenial |
519772ff | 77 | if [[ ! -n "$TARBALL" ]] ; then |
35e67cbd | 78 | cd ${BUILDDIR} && make -f Open-ILS/src/extras/Makefile.install ubuntu-xenial-developer # required for web client |
676b054f | 79 | fi |
0155bbac JD |
80 | # by default, CPAN needs some manual input at this point; you can just accept all defaults |
81 | ||
a4d987d6 | 82 | # web client |
519772ff | 83 | if [[ ! -n "$TARBALL" && ! -n "$SKIPWEBCLIENT" ]] ; then |
57c67252 JD |
84 | if [[ -n "$USEBUNDLE" ]] ; then |
85 | # use bundled web client dependencies from upstream | |
86 | if [ ! -d "/home/${INSTALL_USER}/web-client-deps" ] ; then | |
87 | suwrap "cd /home/${INSTALL_USER} && git clone git://git.sitka.bclibraries.ca/sitka/web-client-deps web-client-deps" ${INSTALL_USER} | |
88 | fi | |
89 | suwrap "cd /home/${INSTALL_USER}/web-client-deps && git checkout ${STAMP_ID}" ${INSTALL_USER} | |
90 | if [ -d "${BUILDDIR}/Open-ILS/web/js/ui/default/staff/build" ] ; then rm -rf ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/build ; fi | |
91 | suwrap "cp -r /home/${INSTALL_USER}/web-client-deps/build ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/build" ${INSTALL_USER} | |
92 | else | |
93 | # install dependencies | |
94 | cd ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/ | |
95 | suwrap "npm install" ${INSTALL_USER} | |
7717a110 | 96 | suwrap "npm run build-prod && npm run test" ${INSTALL_USER} || { echo 'Could not install files for web-based staff client' ; exit 1; } |
57c67252 | 97 | fi |
a4d987d6 | 98 | fi |
99 | ||
bd4a0e27 | 100 | # as INSTALL_USER |
95c72bba | 101 | [ ! -n "$TARBALL" ] && suwrap "cd ${BUILDDIR} && autoreconf -i" ${INSTALL_USER} # not required for release versions |
bd4a0e27 JD |
102 | suwrap "PATH=${INSTALLDIR}/bin:\$PATH cd ${BUILDDIR} && PATH=${INSTALLDIR}/bin:\$PATH ./configure -C --prefix=${INSTALLDIR} --sysconfdir=${INSTALLDIR}/conf --with-opensrf-headers=${INSTALLDIR}/include/ --with-opensrf-libs=${INSTALLDIR}/lib/" ${INSTALL_USER} |
103 | suwrap "cd ${BUILDDIR} && make" ${INSTALL_USER} | |
104 | suwrap "cd ${BUILDDIR}/build/i18n && make LOCALE=fr-CA install && make LOCALE=en-CA install" ${INSTALL_USER} | |
0155bbac JD |
105 | |
106 | # as root | |
4115cc36 | 107 | cd ${BUILDDIR} && make STAFF_CLIENT_VERSION=${VERSION} STAFF_CLIENT_STAMP_ID=${STAMP_ID} install |
ae9cb412 | 108 | mv ${INSTALLDIR}/var/web/reports/fm_IDL.xml ${INSTALLDIR}/var/web/reports/fm_IDL.xml.orig && cp ${INSTALLDIR}/conf/fm_IDL.xml ${INSTALLDIR}/var/web/reports/ |
0155bbac JD |
109 | |
110 | # Apache stuff (as root): | |
ef6f3a9f | 111 | APACHEFILES="/etc/apache2/mods-available/mpm_prefork.conf" |
0155bbac JD |
112 | for APACHEFILE in ${APACHEFILES} |
113 | do | |
a4d987d6 | 114 | [[ -e "${APACHEFILE}" ]] && mv ${APACHEFILE} ${APACHEFILE}.`date +%Y-%m-%d-%H%M%S` |
40ce1f36 | 115 | cp ${SITKACONF}/files/${APACHEFILE}/${HOSTNAME} ${APACHEFILE} |
0155bbac | 116 | done |
ef6f3a9f JD |
117 | cp ${BUILDDIR}/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup |
118 | sed -i 's/export APACHE_RUN_USER=www-data/export APACHE_RUN_USER=opensrf/' /etc/apache2/envvars | |
3a272d45 JD |
119 | if [ ! -d "/etc/apache2/includes" ] ; then |
120 | mkdir /etc/apache2/includes | |
121 | fi | |
a4d987d6 | 122 | a2dismod mpm_event |
123 | a2enmod mpm_prefork | |
ef6f3a9f | 124 | a2enmod headers |
71f85432 JD |
125 | # ensure opensrf can run Apache |
126 | chown -R opensrf:opensrf /var/lock/apache2 | |
7d30f3bf | 127 | |
ef6f3a9f | 128 | # More Apache stuff for non-production sites |
605401cc | 129 | if [[ ! -n "$PROD" ]] ; then |
ef6f3a9f | 130 | SITECONFIGS="/etc/apache2/sites-available/test-server.conf" |
605401cc | 131 | for SITECONFIG in ${SITECONFIGS} ; do |
605401cc JD |
132 | cp ${SITKACONF}/files/${SITECONFIG}/${HOSTNAME} ${SITECONFIG} |
133 | sed -i "s|__NONPROD__|${THISHOST}|g" ${SITECONFIG} | |
3148afad | 134 | sed -i "s|__VERSION__|${VERSION}|g" ${SITECONFIG} |
605401cc | 135 | done |
ef6f3a9f JD |
136 | a2ensite test-server.conf |
137 | a2dissite 000-default | |
884250a7 JD |
138 | if [ ! -d "/etc/apache2/ssl/libraries.coop/star.catalogue.libraries.coop" ] |
139 | then | |
140 | mkdir -p /etc/apache2/ssl/libraries.coop/star.catalogue.libraries.coop | |
141 | cp ${SITKACONF}/files/etc/ssl/apache2/star.catalogue.libraries.coop/star.catalogue.libraries.coop.crt /etc/apache2/ssl/libraries.coop/star.catalogue.libraries.coop/star_catalogue_libraries_coop.crt | |
142 | cp ${SITKACONF}/files/etc/ssl/apache2/star.catalogue.libraries.coop/star.catalogue.libraries.coop.key /etc/apache2/ssl/libraries.coop/star.catalogue.libraries.coop/star_catalogue_libraries_coop.key | |
143 | cp ${SITKACONF}/files/etc/ssl/apache2/star.catalogue.libraries.coop/star.catalogue.libraries.coop.ca /etc/apache2/ssl/libraries.coop/star.catalogue.libraries.coop/star_catalogue_libraries_coop.ca | |
144 | fi | |
605401cc JD |
145 | fi |
146 | ||
7b2b5e72 | 147 | # websockets config |
519772ff | 148 | if [[ ! -n "$SKIPWEBCLIENT" ]] ; then |
7b2b5e72 JD |
149 | # use nginx proxy for websockets traffic |
150 | apt-get install -y nginx | |
cd706301 | 151 | cp -b ${SITKACONF}/files/etc/nginx/sites-available/osrf-ws-http-proxy/${HOSTNAME} /etc/nginx/sites-available/osrf-ws-http-proxy |
7b2b5e72 JD |
152 | ln -s /etc/nginx/sites-available/osrf-ws-http-proxy /etc/nginx/sites-enabled/osrf-ws-http-proxy |
153 | rm /etc/nginx/sites-enabled/default | |
154 | cp -b ${SITKACONF}/files/etc/apache2/ports.conf/${HOSTNAME} /etc/apache2/ports.conf | |
155 | WSJSFILES="opensrf_ws.js opensrf_ws_shared.js" | |
156 | for WSJSFILE in ${WSJSFILES} ; do | |
157 | # NOTE: this should be unnecessary if we installed OpenSRF with ./configure --with-websockets-port=443 | |
158 | sed -i 's/var WEBSOCKET_PORT_SSL = 7682;/var WEBSOCKET_PORT_SSL = 443;/g' ${INSTALLDIR}/lib/javascript/$WSJSFILE | |
159 | done | |
160 | # apache2-websockets | |
161 | if [[ ! -n "$PROD" ]] ; then | |
162 | if [ ! -d "/etc/apache2-websockets/ssl" ] ; then | |
163 | cd /etc/apache2-websockets/ && ln -s /etc/apache2/ssl | |
164 | fi | |
7b2b5e72 | 165 | fi |
e4d4fe00 | 166 | if [ ! -d "/etc/apache2-websockets/includes" ] ; then |
167 | mkdir /etc/apache2-websockets/includes | |
168 | fi | |
169 | for WSINCLUDE in `ls /etc/apache2/includes` ; do | |
170 | ln -s /etc/apache2/includes/${WSINCLUDE} /etc/apache2-websockets/includes/ | |
171 | done | |
172 | for WSSITE in `ls /etc/apache2/sites-available` ; do | |
173 | ln -s /etc/apache2/sites-available/${WSSITE} /etc/apache2-websockets/sites-available/ | |
e4d4fe00 | 174 | done |
f641a675 JD |
175 | for WSSITEENABLED in `ls /etc/apache2/sites-enabled` ; do |
176 | ln -s /etc/apache2-websockets/sites-available/${WSSITEENABLED} /etc/apache2-websockets/sites-enabled/ | |
177 | done | |
178 | if [[ -d "/etc/apache2-websockets/ssl" ]] ; then | |
179 | rm -rf /etc/apache2-websockets/ssl | |
180 | fi | |
181 | cd /etc/apache2-websockets && ln -s /etc/apache2/ssl | |
7b2b5e72 JD |
182 | fi |
183 | ||
286e0b2b JD |
184 | # install default crontab, if specified |
185 | if [[ -c "$CRONTAB" ]]; then | |
186 | if [ ! -f "/etc/cron.d/evergreen-dailies" ] ; then | |
187 | cp ${SITKACONF}/files/etc/cron.d/evergreen-dailies/${HOSTNAME} /etc/cron.d/evergreen-dailies | |
188 | fi | |
189 | fi | |
190 | ||
26b3ea66 | 191 | # set up log rotation |
702f0bd2 JD |
192 | if [[ ! -n "$PROD" ]] ; then |
193 | if [ ! -f "/etc/logrotate.d/evergreen" ] | |
194 | then | |
195 | cp ${SITKACONF}/files/etc/logrotate.d/evergreen/${HOSTNAME} /etc/logrotate.d/evergreen | |
196 | fi | |
26b3ea66 | 197 | fi |
bcd0a18c | 198 | |
4cfcada0 JD |
199 | # remote logging (prod only) |
200 | if [[ -n "$PROD" ]] ; then | |
201 | apt-get install syslog-ng | |
202 | cp ${SITKACONF}/files/etc/syslog-ng/syslog-ng.conf/${HOSTNAME} /etc/syslog-ng/syslog-ng.conf | |
203 | cp ${SITKACONF}/files/etc/syslog-ng/conf.d/sitka.conf/${HOSTNAME} /etc/syslog-ng/conf.d/sitka.conf | |
204 | systemctl restart syslog-ng.service | |
205 | cp ${SITKACONF}/files/usr/local/bin/eg-stats-collector-remote-log.pl /usr/local/bin/eg-stats-collector-remote-log.pl | |
206 | cp ${SITKACONF}/files/usr/local/bin/eg-stats-keepalive.sh /usr/local/bin/eg-stats-keepalive.sh | |
207 | cp ${SITKACONF}/files/etc/cron.d/eg-stats-keepalive/${HOSTNAME} /etc/cron.d/eg-stats-keepalive | |
208 | fi | |
209 | ||
bcd0a18c JD |
210 | # action trigger filters (prod only) |
211 | if [[ -n "$PROD" ]] ; then | |
212 | if [ -f "${INSTALLDIR}/conf/action_trigger_filters.json" ] ; then | |
213 | mv ${INSTALLDIR}/conf/action_trigger_filters.json ${INSTALLDIR}/conf/action_trigger_filters.json.`date +%Y-%m-%d-%H%M%S` | |
214 | fi | |
215 | cp ${SITKACONF}/files/${INSTALLDIR}/conf/action_trigger_filters.json/${HOSTNAME} ${INSTALLDIR}/conf/action_trigger_filters.json | |
216 | fi | |
0155bbac | 217 | |
0155bbac JD |
218 | # 0. osrf conf stuff |
219 | # FIXME: ensure osrf conf files point at a real, distinct db! | |
220 | OSRFCONFFILES="${INSTALLDIR}/conf/opensrf.xml ${INSTALLDIR}/conf/opensrf_core.xml" | |
221 | for OSRFCONFFILE in ${OSRFCONFFILES} | |
222 | do | |
40ce1f36 | 223 | mv ${OSRFCONFFILE} ${OSRFCONFFILE}.`date +%Y-%m-%d-%H%M%S` |
3c2fc018 JD |
224 | if [[ -n "$PROD" && -f "${SITKACONF}/files/${OSRFCONFFILE}/${HOSTNAME}-314" ]] ; then |
225 | cp ${SITKACONF}/files/${OSRFCONFFILE}/${HOSTNAME}-314 ${OSRFCONFFILE} | |
226 | else | |
227 | cp ${SITKACONF}/files/${OSRFCONFFILE}/${HOSTNAME} ${OSRFCONFFILE} | |
228 | fi | |
40ce1f36 | 229 | sed -i "s|__HOSTNAME__|${THISHOST}|g" ${OSRFCONFFILE} |
0155bbac | 230 | done |
661d99f4 | 231 | if [ ! -f "/home/opensrf/.srfsh.xml" ] |
9d46f12d | 232 | then |
661d99f4 | 233 | cp ${SITKACONF}/files/home/opensrf/.srfsh.xml/${HOSTNAME} /home/opensrf/.srfsh.xml |
3c2fc018 | 234 | sed -i "s|__HOSTNAME__|${THISHOST}|g" /home/opensrf/.srfsh.xml |
9d46f12d JD |
235 | fi |
236 | ||
0155bbac | 237 | # 1. install dojo |
abcafeff | 238 | if [ ! -f "/home/opensrf/dojo-release-1.3.3.tar.gz" ] |
51a4755a JD |
239 | then |
240 | cd /home/opensrf && wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz | |
241 | fi | |
0155bbac JD |
242 | tar -C ${INSTALLDIR}/var/web/js -xzf /home/opensrf/dojo-release-1.3.3.tar.gz |
243 | cp -r ${INSTALLDIR}/var/web/js/dojo-release-1.3.3/* ${INSTALLDIR}/var/web/js/dojo/. | |
4b074e2e JD |
244 | # FIXME stock dojo is probably superfluous when we use the following Evergreen-specific tarball... |
245 | if [ ! -f "/home/opensrf/dojo.tgz" ] ; then | |
246 | cd /home/opensrf && wget http://evergreen-ils.org/downloads/dojo.tgz | |
247 | fi | |
248 | tar -C ${INSTALLDIR}/var/web/js/dojo/ -zxf /home/opensrf/dojo.tgz | |
0155bbac JD |
249 | |
250 | # 2. set up staff client | |
9d46f12d | 251 | cd ${INSTALLDIR}/var/web/xul && rm server && rm current |
0155bbac | 252 | cd ${INSTALLDIR}/var/web/xul && ln -s ${STAMP_ID} current && ln -s current/server server |
03b5e41f JD |
253 | for ALT_STAMP_ID in ${ALT_STAMP_IDS} |
254 | do | |
255 | cd ${INSTALLDIR}/var/web/xul && ln -s current ${ALT_STAMP_ID} | |
256 | done | |
0155bbac | 257 | |
9d46f12d | 258 | # 3. install circ scripts and opac skins - DEPRECATED |
71f85432 | 259 | |
96b76bbb JD |
260 | # 4a. avoid 404s |
261 | touch ${INSTALLDIR}/var/web/css/skin/default/register_custom.css | |
262 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-CA/patron_custom.properties | |
263 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-CA/common_custom.properties | |
264 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-CA/offline_custom.properties | |
265 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-CA/auth_custom.properties | |
266 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-CA/cat_custom.properties | |
267 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-CA/circ_custom.properties | |
268 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-US/patron_custom.properties | |
269 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-US/common_custom.properties | |
270 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-US/offline_custom.properties | |
271 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-US/auth_custom.properties | |
272 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-US/cat_custom.properties | |
273 | touch ${INSTALLDIR}/var/web/xul/server/locale/en-US/circ_custom.properties | |
274 | touch ${INSTALLDIR}/var/web/xul/server/skin/custom.js | |
275 | ||
276 | # 4b. workaround for LP#1461683 | |
277 | cd ${INSTALLDIR}/var/web/xul/server/locale/en-CA && mv multiclass_search_help.html multiclass_search_help.html.orig && ln -s ../en-US/multiclass_search_help.html | |
71f85432 JD |
278 | |
279 | # 5. locale hack - XXX deprecated? | |
280 | #cd ${INSTALLDIR}/var/web/opac/locale && cp -fdr en-US en-US-bak && cp -fdr en-CA en-US | |
0155bbac JD |
281 | |
282 | # 6. deletepatron | |
283 | # ensure apache conf contains deletepatron config (location should be ${INSTALLDIR}/var/web/deletepatron) | |
437b75c1 JD |
284 | if [[ ! -d "${INSTALLDIR}/var/web/deletepatron" ]] ; then |
285 | NEW_DELETEPATRON_INSTALL="true" | |
286 | cd ${INSTALLDIR}/var/web && git clone https://github.com/twirlip/deletepatron.git | |
287 | fi | |
288 | cd ${INSTALLDIR}/var/web/deletepatron && git checkout eg22 | |
289 | if [[ -n "$NEW_DELETEPATRON_INSTALL" ]] ; then | |
290 | find ${INSTALLDIR}/var/web/deletepatron -name "*.pm" | xargs sed -i -e 's|/openils|/srv/openils|g' | |
291 | fi | |
ae9cb412 | 292 | apt-get install -y libcgi-session-perl libhtml-template-perl |
0155bbac | 293 | |
f3b555fc JD |
294 | # 7. support scripts |
295 | cp ${BUILDDIR}/Open-ILS/src/support-scripts/generate_circ_notices.pl ${INSTALLDIR}/bin | |
22b9d1ac | 296 | cp ${BUILDDIR}/Open-ILS/src/support-scripts/oils_header.pl ${INSTALLDIR}/bin |
9c35266e | 297 | cp ${BUILDDIR}/Open-ILS/src/support-scripts/badge_score_generator.pl ${INSTALLDIR}/bin |
f3b555fc JD |
298 | |
299 | # 7.5 EDI (optional) | |
300 | if [[ -n "$EDI" ]] ; then | |
301 | cp -r ${BUILDDIR}/Open-ILS/src/edi_translator ${INSTALLDIR}/var/edi | |
302 | cd ${INSTALLDIR}/var/edi && ./install.sh | |
303 | cp ${BUILDDIR}/Open-ILS/src/support-scripts/edi_pusher.pl ${INSTALLDIR}/bin | |
304 | cp ${BUILDDIR}/Open-ILS/src/support-scripts/edi_fetcher.pl ${INSTALLDIR}/bin | |
305 | cp ${SYSADMIN}/files/${INSTALLDIR}/bin/edi_per_account_fetcher.sh ${INSTALLDIR}/bin/edi_per_account_fetcher.sh | |
4531a146 JD |
306 | # add local modifications to openils-mapper rubygem (eww, yuck, barf) |
307 | cp -b ${SYSADMIN}/files/var/lib/gems/2.3.0/gems/openils-mapper-0.9.9/lib/openils/mapper.rb /var/lib/gems/2.3.0/gems/openils-mapper-0.9.9/lib/openils/mapper.rb | |
308 | cp -b ${SYSADMIN}/files/var/lib/gems/2.3.0/gems/openils-mapper-0.9.9/lib/edi/mapper.rb /var/lib/gems/2.3.0/gems/openils-mapper-0.9.9/lib/edi/mapper.rb | |
f3b555fc | 309 | fi |
0155bbac | 310 | |
c05e3516 JD |
311 | # 8. setup start page |
312 | if [ ! -d "${INSTALLDIR}/var/web/news" ] | |
313 | then | |
314 | mkdir ${INSTALLDIR}/var/web/news | |
315 | fi | |
24057702 JD |
316 | if [ ! -d "${INSTALLDIR}/var/web/news/media" ] |
317 | then | |
318 | mkdir ${INSTALLDIR}/var/web/news/media | |
319 | fi | |
320 | NEWSFILES="index.html style.css media/logo.png media/book.png media/policy.png media/dash.png media/delete.png" | |
c05e3516 JD |
321 | for NEWSFILE in ${NEWSFILES} |
322 | do | |
323 | if [ -f "${SITKACONF}/files/${INSTALLDIR}/var/web/news/${NEWSFILE}/${HOSTNAME}" ] | |
324 | then | |
325 | cp ${SITKACONF}/files/${INSTALLDIR}/var/web/news/${NEWSFILE}/${HOSTNAME} ${INSTALLDIR}/var/web/news/${NEWSFILE} | |
326 | fi | |
327 | done | |
24057702 JD |
328 | if [[ -n "$PROD" ]] ; then |
329 | if [ ! -e "${INSTALLDIR}/var/web/news/wikipull.pl" ] ; then cp ${SITKACONF}/files/${INSTALLDIR}/var/web/news/wikipull.pl/${HOSTNAME} ${INSTALLDIR}/var/web/news/wikipull.pl ; fi | |
330 | if [ ! -e "/etc/cron.d/news" ] ; then cp ${SITKACONF}/files/etc/cron.d/news/${HOSTNAME} /etc/cron.d/news ; fi | |
5edb204e JD |
331 | else |
332 | # nonprod server, auto-update splash page with install info | |
5edb204e | 333 | TODAY=`date +'%A %d %B %Y'` |
605401cc JD |
334 | sed -i "s|__THISHOST__|${THISHOST}|g" ${INSTALLDIR}/var/web/news/index.html |
335 | sed -i "s|__TODAY__|${TODAY}|g" ${INSTALLDIR}/var/web/news/index.html | |
336 | sed -i "s|__VERSION__|${VERSION}|g" ${INSTALLDIR}/var/web/news/index.html | |
337 | sed -i "s|__BRANCH__|${BRANCH}|g" ${INSTALLDIR}/var/web/news/index.html | |
24057702 | 338 | fi |
c05e3516 | 339 | |
341cf34e | 340 | # 8.5 offline patron list |
24057702 JD |
341 | if [ ! -d "${INSTALLDIR}/var/data/offline/blocked" ] ; then |
342 | # TODO: handle prod - an NFS share should exist | |
343 | if [[ ! -n "$PROD" ]] ; then | |
344 | mkdir -p ${INSTALLDIR}/var/data/offline/blocked | |
345 | fi | |
346 | fi | |
437b75c1 | 347 | if [ ! -e "${INSTALLDIR}/var/web/standalone/list.txt" ] ; then ln -sf ${INSTALLDIR}/var/data/offline/blocked/patron-block-list.txt ${INSTALLDIR}/var/web/standalone/list.txt ; fi |
341cf34e JD |
348 | if [ ! -e "${INSTALLDIR}/bin/update-offline-blocked-list.sh" ] ; then cp ${SITKATOOLS}/maintenance/update-offline-blocked-list.sh ${INSTALLDIR}/bin/update-offline-blocked-list.sh ; fi |
349 | ||
f37d71da | 350 | cp ${SITKACONF}/files${INSTALLDIR}/var/data/zips.txt/${HOSTNAME} ${INSTALLDIR}/var/data/zips.txt |
661d99f4 | 351 | |
f5bb272b JD |
352 | # install legacy OverDrive API integration |
353 | cp -r ${SITKATOOLS}/overdrive-eg-opac/build/* ${INSTALLDIR}/var/web/js/ui/default/opac | |
354 | ODAPI_LIBS="bc mb" | |
355 | for ODAPI_LIB in ${ODAPI_LIBS} ; do | |
356 | cp ${SITKACONF}/files/${INSTALLDIR}/var/web/js/ui/default/opac/${ODAPI_LIB}/od_config.js ${INSTALLDIR}/var/web/js/ui/default/opac/${ODAPI_LIB}/od_config.js | |
357 | done | |
02bd66d5 | 358 | |
ea5fbaea JD |
359 | # install mobile PAC |
360 | cd ${INSTALLDIR}/var/web/opac/extras && git clone git://git.sitka.bclibraries.ca/sitka/mobile-evergreen-opac.git mobile | |
361 | ||
c05e3516 | 362 | # 9. make sure opensrf owns all the stuff we just did |
b7afc39d | 363 | echo 'managing file permissions...' |
af205db8 JD |
364 | if [[ ! -n "$PROD" ]] ; then |
365 | chown -R opensrf:opensrf ${INSTALLDIR} 2>/dev/null | |
366 | else | |
367 | for file in `ls -1 ${INSTALLDIR} | grep -v var` ; do chown -R opensrf:opensrf ${INSTALLDIR}/$file ; done | |
368 | chown opensrf:opensrf ${INSTALLDIR}/var | |
369 | for file in `ls -1 ${INSTALLDIR}/var | egrep -v '(data|tmp|web)'` ; do chown -R opensrf:opensrf ${INSTALLDIR}/var/$file ; done | |
370 | chown opensrf:opensrf ${INSTALLDIR}/var/data ${INSTALLDIR}/var/web | |
371 | for file in `ls -1 ${INSTALLDIR}/var/data | grep -v offline` ; do chown -R opensrf:opensrf ${INSTALLDIR}/var/data/$file ; done | |
372 | for file in `ls -1 ${INSTALLDIR}/var/web | grep -v reporter` ; do chown -R opensrf:opensrf ${INSTALLDIR}/var/web/$file ; done | |
373 | fi | |
d4e88b8a | 374 | chown -R opensrf:opensrf /home/opensrf |
7f126d3b JD |
375 | SKINDIRS="${INSTALLDIR}/var/skins ${INSTALLDIR}/var/web/css/skin" |
376 | for SKINDIR in ${SKINDIRS} ; do | |
377 | if [[ ! -d "${SKINDIR}" ]] ; then mkdir ${SKINDIR} ; fi | |
378 | chmod 777 ${SKINDIR} | |
bd4a0e27 | 379 | chown -R ${DEFAULT_USER}:${DEFAULT_USER} ${SKINDIR} |
7f126d3b | 380 | done |
bd4a0e27 | 381 | chown -R ${DEFAULT_USER}:${DEFAULT_USER} ${INSTALLDIR}/conf/kpac ${INSTALLDIR}/var/web/images/kpac |
0155bbac | 382 | |
d4e88b8a | 383 | # 10. staff client stuff |
ae9cb412 | 384 | apt-get install -y nsis unzip |
089f11fb JD |
385 | |
386 | # 11. integrity checker prereqs | |
ae9cb412 | 387 | apt-get install -y libconfig-simple-perl libgit-repository-perl libdate-manip-perl |
ee1de43f JD |
388 | |
389 | # 12. paper overdue prereqs | |
5e12a76f | 390 | apt-get install -y python-reportlab python-reportlab-accel unifont |
6298f1c5 | 391 | |
a4d987d6 | 392 | echo 'Evergreen is installed!' |
6298f1c5 | 393 |