forked from vufind-org/vufind
-
Notifications
You must be signed in to change notification settings - Fork 0
/
import-marc.sh
executable file
·126 lines (110 loc) · 3.57 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
#!/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
# 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
EXTRA_SOLRMARC_SETTINGS="$EXTRA_SOLRMARC_SETTINGS -Dsolr.core.name=$SOLRCORE"
fi
##################################################
# Set VUFIND_HOME
##################################################
if [ -z "$VUFIND_HOME" ]
then
VUFIND_HOME="/usr/local/vufind"
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
##################################################
for i in $VUFIND_HOME/import/solrmarc_core_*.jar; do JAR_FILE="$i"; done
#####################################################
# 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 $EXTRA_SOLRMARC_SETTINGS -jar $JAR_FILE $PROPERTIES_FILE -solrj $VUFIND_HOME/solr/vendor/dist/solrj-lib $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