2014-12-25 21:31:22 -05:00
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Usage:
# bin/post <collection> <file(s)|url> [<params to SimplePostTool>]
# bin/post gettingstarted http://lucidworks.com [recursive=1] [delay=1]
# bin/post tehfiles ~/Documents
# bin/post signals LATEST-signals.csv
# bin/post records article*.xml
# bin/post wizbang events.json
2014-12-29 22:34:19 -05:00
# ====== Common code copied from bin/solr (TODO: centralize/share this kind of thing)
if [ -n "$SOLR_JAVA_HOME" ]; then
JAVA=$SOLR_JAVA_HOME/bin/java
elif [ -n "$JAVA_HOME" ]; then
for java in "$JAVA_HOME"/bin/amd64/java "$JAVA_HOME"/bin/java; do
if [ -x "$java" ]; then
JAVA="$java"
break
fi
done
else
JAVA=java
fi
# test that Java exists and is executable on this server
$JAVA -version >/dev/null 2>&1 || { echo >&2 "Java is required to run this tool! Please install Java 8 or greater before running this script."; exit 1; }
# ===== post specific code
2014-12-25 21:31:22 -05:00
SPT_JAR=dist/solr-core-*.jar
COLLECTION=$1; shift
2014-12-29 22:34:19 -05:00
echo "Collection:" $COLLECTION
2014-12-25 21:31:22 -05:00
PROPS="-Dc=$COLLECTION"
PARAMS=""
# TODO: Check that $COLLECTION actually exists? How to determine if user omitted collection name as first param?
2014-12-29 22:34:19 -05:00
echo -n "Data mode: "
2014-12-25 21:31:22 -05:00
if [[ $1 == http* ]]; then
echo "WEB"
PROPS="$PROPS -Ddata=web"
PARAMS=$1; shift
else
if [[ -d $1 ]]; then
# Directory
2014-12-29 22:34:19 -05:00
echo "DIRECTORY"
2014-12-25 21:31:22 -05:00
PROPS="$PROPS -Ddata=files -Dauto -Drecursive"
PARAMS=$1; shift
else
# Not a URL or existing directory, assume file(s)
2014-12-29 22:34:19 -05:00
echo "FILE"
2014-12-25 21:31:22 -05:00
FILE=$1; shift
EXTENSION="${FILE##*.}"
PARAMS=$FILE
if [[ $EXTENSION == xml || $EXTENSION == csv || $EXTENSION == json ]]; then
# Solr /update supported type (default being application/xml).
if [[ $EXTENSION == csv ]]; then
PROPS="$PROPS -Dtype=text/csv"
fi
if [[ $EXTENSION == json ]]; then
PROPS="$PROPS -Dtype=application/json"
fi
else
PROPS="$PROPS -Dauto=yes"
fi
fi
fi
2014-12-29 22:34:19 -05:00
# Add all additonal trailing script parameters as system properties to SPT (eg. bin/post core_name ~/Documents depth=1)
2014-12-25 21:31:22 -05:00
while [ $# -gt 0 ]; do
PROPS="$PROPS -D$1"
shift
done
2014-12-29 22:34:19 -05:00
echo $JAVA -classpath $SPT_JAR $PROPS org.apache.solr.util.SimplePostTool $PARAMS
$JAVA -classpath $SPT_JAR $PROPS org.apache.solr.util.SimplePostTool $PARAMS