blob: 430cb03017825c2b746bdb55540db89003264232 [file] [log] [blame]
#!/bin/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.
function cleanup {
if [ -n "$(docker ps -q -f name=glv-examples)" ]
then
echo -n "Shutting down container: "
docker stop glv-examples
fi
if [ -n "$(docker ps -q -f name=glv-examples-modern)" ]
then
echo -n "Shutting down container: "
docker stop glv-examples-modern
fi
}
trap cleanup EXIT
open -a Docker
docker pull tinkerpop/gremlin-server
docker run -d --rm -p 8182:8182 --name glv-examples --health-cmd="curl -f http://localhost:8182/ || exit 1" --health-interval=5s --health-timeout=3s tinkerpop/gremlin-server
echo
echo "Not having Docker open initially or occupying port 8182 may cause an error loop. If so, simply restart this script."
echo -n "Starting Gremlin server on port 8182..."
until docker inspect --format '{{.State.Health.Status}}' glv-examples | grep -q "healthy"; do
echo -n "."
sleep 1
done
echo
cd gremlin-driver/src/main/java/examples || exit
mvn clean install
echo
echo "Running Java examples"
java -cp target/run-examples-shaded.jar examples.Connections
java -cp target/run-examples-shaded.jar examples.BasicGremlin
cd ../../../../.. || exit
echo
echo "Running python examples:"
python3 gremlin-python/src/main/python/examples/connections.py
python3 gremlin-python/src/main/python/examples/basic_gremlin.py
echo
echo "Running JavaScript examples:"
npm install --prefix gremlin-javascript/examples
node gremlin-javascript/examples/connections.js
node gremlin-javascript/examples/basic-gremlin.js
echo
echo "Running .NET examples:"
dotnet run --project gremlin-dotnet/Examples/Connections
dotnet run --project gremlin-dotnet/Examples/BasicGremlin
echo
echo "Running Go examples:"
cd gremlin-go/examples || exit
go run connections.go
go run basic_gremlin.go
cd ../.. || exit
echo
echo -n "Shutting down container: "
docker stop glv-examples
echo
docker run -d --rm -p 8182:8182 --name glv-examples-modern --health-cmd="curl -f http://localhost:8182/ || exit 1" --health-interval=5s --health-timeout=3s tinkerpop/gremlin-server conf/gremlin-server-modern.yaml
echo -n "Starting Modern server on port 8182..."
until docker inspect --format '{{.State.Health.Status}}' glv-examples-modern | grep -q "healthy"; do
echo -n "."
sleep 1
done
echo
echo
echo "Running Java traversals"
cd gremlin-driver/src/main/java/examples || exit
java -cp target/run-examples-shaded.jar examples.ModernTraversals
cd ../../../../.. || exit
echo
echo "Running python traversals:"
python3 gremlin-python/src/main/python/examples/modern_traversals.py
echo
echo "Running JavaScript traversals:"
npm install --prefix gremlin-javascript/examples
node gremlin-javascript/examples/modern-traversals.js
echo
echo "Running .NET traversals:"
dotnet run --project gremlin-dotnet/Examples/ModernTraversals
echo
echo "Running Go traversals:"
cd gremlin-go/examples || exit
go run modern_traversals.go
cd ../.. || exit
echo
echo -n "Shutting down container: "
docker stop glv-examples-modern