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