1#!/bin/bash
2
3# default period for reindexing (in minutes)
4if [ -z "$REINDEX" ]; then
5	REINDEX=10
6fi
7
8indexer(){
9	# Wait for Tomcat startup.
10	date +"%F %T Waiting for Tomcat startup..."
11	while [ "`curl --silent --write-out '%{response_code}' -o /dev/null 'http://localhost:8080/'`" == "000" ]; do
12		sleep 1;
13	done
14	date +"%F %T Startup finished"
15
16	if [[ ! -d /opengrok/data/index ]]; then
17		# Populate the webapp with bare configuration.
18		BODY_INCLUDE_FILE="/opengrok/data/body_include"
19		if [[ -f $BODY_INCLUDE_FILE ]]; then
20			mv "$BODY_INCLUDE_FILE" "$BODY_INCLUDE_FILE.orig"
21		fi
22		echo '<p><h1>Waiting on the initial reindex to finish.. Stay tuned !</h1></p>' > "$BODY_INCLUDE_FILE"
23		/scripts/index.sh --noIndex
24		rm -f "$BODY_INCLUDE_FILE"
25		if [[ -f $BODY_INCLUDE_FILE.orig ]]; then
26			mv "$BODY_INCLUDE_FILE.orig" "$BODY_INCLUDE_FILE"
27		fi
28
29		# Perform initial indexing.
30		NOMIRROR=1 /scripts/index.sh
31		date +"%F %T Initial reindex finished"
32	fi
33
34	# Continue to index every $REINDEX minutes.
35	if [ "$REINDEX" == "0" ]; then
36		date +"%F %T Automatic reindexing disabled"
37		return
38	else
39		date +"%F %T Automatic reindexing in $REINDEX minutes..."
40	fi
41	while true; do
42		sleep `expr 60 \* $REINDEX`
43		/scripts/index.sh
44	done
45}
46
47# Start all necessary services.
48indexer &
49catalina.sh run
50