#!bash

[ -n "$TRAVIS_TAG" ] || git diff --name-only "$TRAVIS_COMMIT_RANGE" 2>&1 | grep -qvE '(\.(md|txt)$)|_doc/' || {
  echo Documentation-only update. Skipping travis proper.
  exit
}

previous_build_failed() {
  let TRAVIS_PREVIOUS_BUILD_NUMBER="$TRAVIS_BUILD_NUMBER - 1"
  [ "$TRAVIS_BUILD_NUMBER" == "1" ] || \
  curl -s -H 'Accept: application/vnd.travis-ci.2+json' "https://api.travis-ci.org/builds?slug=$TRAVIS_REPO_SLUG&number=$TRAVIS_PREVIOUS_BUILD_NUMBER" | \
    python3 -c 'import sys,json; k=json.load(sys.stdin); print(k); sys.exit(int(k["builds"][0]["state"] == "passed"))'
}

if [ -n "$TRAVIS_TAG" ]; then
  git show "$TRAVIS_TAG" 2>&1 | sed -n '/^diff --git/q;p' > /tmp/commit-message
else
  git log --format=%B --no-merges -n 1 &> /tmp/commit-message
fi

! grep -qF '[ci fast]' /tmp/commit-message || \
    [ -n "$TRAVIS_TAG" ] || \
    previous_build_failed || {
  echo Travis not needed for this update.
  exit
}
