#!/bin/bash
# bin/prove-vspec - Utility to run many tests on Vim script at once
# Version: 1.9.2
# Copyright (C) 2009-2021 Kana Natsuno <https://whileimautomaton.net/>
# License: MIT license  {{{
#     Permission is hereby granted, free of charge, to any person obtaining
#     a copy of this software and associated documentation files (the
#     "Software"), to deal in the Software without restriction, including
#     without limitation the rights to use, copy, modify, merge, publish,
#     distribute, sublicense, and/or sell copies of the Software, and to
#     permit persons to whom the Software is furnished to do so, subject to
#     the following conditions:
#
#     The above copyright notice and this permission notice shall be included
#     in all copies or substantial portions of the Software.
#
#     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
#     OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
#     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
#     IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
#     CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
#     TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
#     SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# }}}

prove_options=('--comments' '--failure' '--directives')
dep_dirs=()




error()
{
  echo "$@" >&2
  exit 1
}

usage()
{
  cat <<END >&2
Usage: $0 [options] [files or directories]

Options:
    -d DIR      Use also DIR as a part of 'runtimepath' to run *.vim tests.
                Can be specified multiple times.
    -h, --help  Display this help and exit.
END
  exit 1
}




while [[ $# -ge 1 ]]
do
  case "$1" in
    -d)
      [[ $# -lt 2 ]] && error "Option $1 requires a value"
      dep_dirs+=("$2")
      shift 2
      ;;
    -h|--help)
      usage
      ;;
    --)
      shift
      break
      ;;
    -*)
      error "Unknown option: $1";;
    *)
      break
      ;;
  esac
done




prove "${prove_options[@]}" \
      --ext '.t' --ext '.vim' \
      --exec "$(dirname "$0")/vspec ${dep_dirs[*]}" \
      "${@}"

# __END__
# vim: foldmethod=marker
