rebuild-ontohub revision 341d3f7b871686bb3bca90eba12bcf56085d90b1
c60f0e1a81c07f23a42f2fdfaebf747bcdd30ae7Tim Reddehase#!/bin/bash
c60f0e1a81c07f23a42f2fdfaebf747bcdd30ae7Tim Reddehase
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehaseabort_unless_invoker_installed() {
d731d2608b96a59e2dbef7cdd0cd8f3d7eed955aTim Reddehase result="$(which invoker 2>&1)"
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase if [[ "$?" -ne "0" ]]; then
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase echo ">>> Invoker not installed, please install"
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase exit 1
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase fi
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase}
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehaseinitialize_new_invoker_instance() {
d731d2608b96a59e2dbef7cdd0cd8f3d7eed955aTim Reddehase result="$(invoker list 2>&1)"
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase if [[ "$?" -eq "0" ]]; then
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase echo ">>> Invoker running, restarting..."
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase result=`invoker stop 2>&1`
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase else
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase echo ">>> Invoker not running, starting..."
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase fi
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase invoker start invoker.ini --daemon
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase}
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase
c60f0e1a81c07f23a42f2fdfaebf747bcdd30ae7Tim Reddehaseexecute_or_die() {
c60f0e1a81c07f23a42f2fdfaebf747bcdd30ae7Tim Reddehase cmd="$1"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase execute_or_die_unless_match "$cmd" ""
c60f0e1a81c07f23a42f2fdfaebf747bcdd30ae7Tim Reddehase}
c60f0e1a81c07f23a42f2fdfaebf747bcdd30ae7Tim Reddehase
341d3f7b871686bb3bca90eba12bcf56085d90b1Tim Reddehase# An empty expression will not be checked. This in fact means, that there is no
341d3f7b871686bb3bca90eba12bcf56085d90b1Tim Reddehase# check for 'empty-output', but seeing as that should probably be never the
341d3f7b871686bb3bca90eba12bcf56085d90b1Tim Reddehase# case it is a good way to combine both execute_or... versions
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehaseexecute_or_die_unless_match() {
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase cmd="$1"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase expression="$2"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase echo ">>> Executing '$cmd'"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase result="$($cmd 2>&1)"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase state="$?"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase if [[ "$state" -ne "0" ]]; then
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase if [[ -n "$expression" ]]; then
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase check_and_handle_result_text "$result" "$expression" "$cmd"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase else
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase abort_cmd "$cmd"
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase fi
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase fi
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase}
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase
341d3f7b871686bb3bca90eba12bcf56085d90b1Tim Reddehase# Currently the match cannot be a 'normal' regular expression.
341d3f7b871686bb3bca90eba12bcf56085d90b1Tim Reddehase# This however can be changed by adding a 'P' to the switches list for the
341d3f7b871686bb3bca90eba12bcf56085d90b1Tim Reddehase# grep-command.
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehasecheck_and_handle_result_text() {
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase result="$1"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase expression="$2"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase cmd="$3"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase echo "$result" | grep -q "$expression"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase matchstate="$?"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase if [[ "$matchstate" -ne "0" ]]; then
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase abort_cmd "$cmd"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase else
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase echo ">>> Failed to execute '$cmd', but ignoring the result."
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase fi
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase}
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehaseabort_cmd() {
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase cmd="$1"
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase echo ">>> Failed to execute '$cmd', aborting further commands."
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase exit 1
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase}
4356d89b99a2cc4d4f5b0736cad1b62f437189d2Tim Reddehase
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehaserun_invoker="1"
cb09f778ad6878e2a08030d75410c130c737ba41Tim Reddehase
37cc69ff6c896d2259221d7f912c3a4113cbfccbEugen Kuksafor i in "$@"; do
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksacase $i in
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa -d|--download-fixtures)
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa export DOWNLOAD_FIXTURES=true
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa ;;
6f6f5298a9d018416275e6e664bf7a8d7c40016eEugen Kuksa -r|--restart)
6f6f5298a9d018416275e6e664bf7a8d7c40016eEugen Kuksa RESTART_INVOKER_ONLY=true
37f8751b279b9fbe3033dfdc2b08a67083878afbEugen Kuksa ;;
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehase --no-invoker)
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehase run_invoker="0"
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehase ;;
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa *)
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa # unknown option
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa ;;
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa esac
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa shift
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksadone
0e9a600d7b5b2bf21d7105b4513b9b5d6e85ba03Eugen Kuksa
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehaseif [[ "$run_invoker" -eq "1" ]]; then
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehase abort_unless_invoker_installed
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehase initialize_new_invoker_instance
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehasefi
2ee846646647982d31bd22bbb48bad2b98f13162Tim Reddehase
37cc69ff6c896d2259221d7f912c3a4113cbfccbEugen Kuksaif [[ !($RESTART_INVOKER_ONLY) ]]; then
996c28c2e9f755a6831378e9bc4c4513bc5e45caTim Reddehase execute_or_die_unless_match "bundle exec rake elasticsearch:wipe" "Elasticsearch::Transport::Transport::Errors::NotFound"
37f8751b279b9fbe3033dfdc2b08a67083878afbEugen Kuksa execute_or_die "bundle exec rake db:migrate:clean"
37f8751b279b9fbe3033dfdc2b08a67083878afbEugen Kuksa execute_or_die "redis-cli flushdb"
37f8751b279b9fbe3033dfdc2b08a67083878afbEugen Kuksa execute_or_die "bundle exec rake git:compile_cp_keys"
37f8751b279b9fbe3033dfdc2b08a67083878afbEugen Kuksa execute_or_die "bundle exec rake db:seed"
37f8751b279b9fbe3033dfdc2b08a67083878afbEugen Kuksafi