forked from vufind-org/vufind
-
Notifications
You must be signed in to change notification settings - Fork 1
/
import-marc.sh
executable file
·148 lines (127 loc) · 4.09 KB
/
import-marc.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/bash
# $Id: index_file.sh 17 2008-06-20 14:40:13Z wayne.graham $
#
# Bash script to start the import of a binary marc file for Solr indexing.
#
# VUFIND_HOME
# Path to the vufind installation
# SOLRMARC_HOME
# Path to the solrmarc installation
# JAVA_HOME
# Path to the java
# INDEX_OPTIONS
# Options to pass to the JVM
#
#####################################################
# handle the -p option to override properties file
#####################################################
while getopts ":p:" Option
do
case $Option in
p) PROPERTIES_FILE=$OPTARG;;
:)
echo "argument to '-$OPTARG' is missing" >&2
exit -1;;
\?) echo "Unrecognized option '-$OPTARG'" >&2;;
esac
done
#Decrement the argument pointer so it points to next argument
shift $(($OPTIND - 1))
#####################################################
# Make sure we have the expected number of arguments
#####################################################
E_BADARGS=65
EXPECTED_ARGS=1
if [ $# -ne $EXPECTED_ARGS ]
then
echo " Usage: `basename $0` [-p ./path/to/import.properties] ./path/to/marc.mrc"
exit $E_BADARGS
fi
##################################################
# Set INDEX_OPTIONS
# Tweak these in accordance to your needs
# Xmx and Xms set the heap size for the Java Virtual Machine
# You may also want to add the following:
# -XX:+UseParallelGC
# -XX:+AggressiveOpts
##################################################
if [ -z "$INDEX_OPTIONS" ]
then
INDEX_OPTIONS='-Xms512m -Xmx512m -DentityExpansionLimit=0'
fi
##################################################
# Set SOLRCORE
##################################################
if [ -z "$SOLRCORE" ]
then
SOLRCORE="biblio"
fi
##################################################
# Set VUFIND_HOME
##################################################
if [ -z "$VUFIND_HOME" ]
then
VUFIND_HOME="/usr/local/vufind2"
fi
##################################################
# Use SOLR_HOME if set
##################################################
if [ ! -z "$SOLR_HOME" ]
then
EXTRA_SOLRMARC_SETTINGS="$EXTRA_SOLRMARC_SETTINGS -Dsolr.path=$SOLR_HOME -Dsolr.solr.home=$SOLR_HOME -Dsolrmarc.solr.war.path=$SOLR_HOME/jetty/webapps/solr.war"
fi
##################################################
# Set SOLRMARC_HOME
##################################################
if [ ! -z "$SOLRMARC_HOME" ]
then
EXTRA_SOLRMARC_SETTINGS="$EXTRA_SOLRMARC_SETTINGS -Dsolrmarc.path=$VUFIND_HOME/import"
fi
#####################################################
# Build java command
#####################################################
if [ "$JAVA_HOME" ]
then
JAVA="$JAVA_HOME/bin/java"
else
JAVA="java"
fi
##################################################
# Set properties file if not already provided
##################################################
if [ -z "$PROPERTIES_FILE" ]
then
if [ -f "$VUFIND_LOCAL_DIR/import/import.properties" ]
then
PROPERTIES_FILE="$VUFIND_LOCAL_DIR/import/import.properties"
else
PROPERTIES_FILE="$VUFIND_HOME/import/import.properties"
fi
fi
##################################################
# Set Command Options
##################################################
JAR_FILE="$VUFIND_HOME/import/SolrMarc.jar"
#####################################################
# Verify that JAR_FILE exists
#####################################################
if [ ! -f "$JAR_FILE" ]
then
echo "Could not find $JAR_FILE. Make sure VUFIND_HOME is set correctly."
exit 1
fi
#####################################################
# Normalize target file path to absolute path
#####################################################
MARC_PATH=`dirname $1`
MARC_PATH=`cd $MARC_PATH && pwd`
MARC_FILE=`basename $1`
#####################################################
# Execute Importer
#####################################################
RUN_CMD="$JAVA $INDEX_OPTIONS -Duser.timezone=UTC -Dsolr.core.name=$SOLRCORE $EXTRA_SOLRMARC_SETTINGS -jar $JAR_FILE $PROPERTIES_FILE $MARC_PATH/$MARC_FILE"
echo "Now Importing $1 ..."
# solrmarc writes log messages to stderr, write RUN_CMD to the same place
echo "`date '+%h %d, %H:%M:%S'` $RUN_CMD" >&2
exec $RUN_CMD
exit 0