rebuild-ontohub revision 996c28c2e9f755a6831378e9bc4c4513bc5e45ca
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews#!/bin/bash
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
71cef386fae61275b03e203825680b39fedaa8c6Tinderbox Userabort_unless_invoker_installed() {
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews result="$(which invoker 2>&1)"
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User if [[ "$?" -ne "0" ]]; then
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User echo ">>> Invoker not installed, please install"
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User exit 1
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fi
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews}
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsinitialize_new_invoker_instance() {
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews result="$(invoker list 2>&1)"
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [[ "$?" -eq "0" ]]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt echo ">>> Invoker running, restarting..."
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User result=`invoker stop 2>&1`
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont else
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User echo ">>> Invoker not running, starting..."
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fi
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews invoker start invoker.ini --daemon
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews}
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsexecute_or_die() {
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews cmd="$1"
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo ">>> Executing '$cmd'"
28b3569d6248168e6c00caab951521cc8141a49dAutomatic Updater result="$($cmd 2>&1)"
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews state="$?"
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User if [[ "$state" -ne "0" ]]; then
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo "$result"
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo ">>> Failed to execute '$cmd', aborting further commands."
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews exit 1
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fi
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews}
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsexecute_or_die_unless_match() {
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User cmd="$1"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User expression="$2"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User echo ">>> Executing '$cmd'"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User result="$($cmd 2>&1)"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User state="$?"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if [[ "$state" -ne "0" ]]; then
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo "$result" | grep -q "$expression"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User matchstate="$?"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if [[ "$matchstate" -ne "0" ]]; then
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User echo ">>> Failed to execute '$cmd', aborting further commands."
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User exit 1
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews else
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User echo ">>> Failed to execute '$cmd', but ignoring the result."
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User fi
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User fi
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User}
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userabort_unless_invoker_installed
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userinitialize_new_invoker_instance
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userfor i in "$@"; do
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Usercase $i in
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User -d|--download-fixtures)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User export DOWNLOAD_FIXTURES=true
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ;;
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User -r|--restart)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User RESTART_INVOKER_ONLY=true
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ;;
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User *)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User # unknown option
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ;;
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User esac
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User shift
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userdone
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userif [[ !($RESTART_INVOKER_ONLY) ]]; then
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User execute_or_die_unless_match "bundle exec rake elasticsearch:wipe" "Elasticsearch::Transport::Transport::Errors::NotFound"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User execute_or_die "bundle exec rake db:migrate:clean"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User execute_or_die "redis-cli flushdb"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User execute_or_die "bundle exec rake git:compile_cp_keys"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User execute_or_die "bundle exec rake db:seed"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userfi
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User