language: python
sudo: false

cache:
  pip: true

env:
  global:
    - DEPS=$HOME/deps
    - PATH=$DEPS/bin:$PATH
  matrix:
    - LINT=vimlint-errors
    - LINT=vimlint
    - LINT=vint-errors
    - LINT=vint
    - LINT=vader

matrix:
  allow_failures:
    - env: LINT=vimlint
    - env: LINT=vint

install:
  - |
    if [ "${LINT#vimlint}" != "$LINT" ]; then
      git clone --depth=1 https://github.com/syngan/vim-vimlint /tmp/vimlint
      git clone --depth=1 https://github.com/ynkdir/vim-vimlparser /tmp/vimlparser
    elif [ "${LINT#vint}" != "$LINT" ]; then
      virtualenv /tmp/vint && source /tmp/vint/bin/activate && pip install vim-vint
    elif [ "${LINT#vader}" != "$LINT" ]; then
      git clone https://github.com/junegunn/vader.vim.git /tmp/vader
      C_OPTS="--prefix=$DEPS --with-features=huge --disable-gui --enable-pythoninterp"
      git clone --depth 1 https://github.com/vim/vim
      cd vim
      ./configure $C_OPTS
      make
      make install
      cd -
    fi
script:
  - |
    if [ "$LINT" = "vimlint" ]; then
      sh /tmp/vimlint/bin/vimlint.sh -l /tmp/vimlint -p /tmp/vimlparser ./config
      sh /tmp/vimlint/bin/vimlint.sh -l /tmp/vimlint -p /tmp/vimlparser ./autoload
      sh /tmp/vimlint/bin/vimlint.sh -l /tmp/vimlint -p /tmp/vimlparser ./ftplugin
      sh /tmp/vimlint/bin/vimlint.sh -l /tmp/vimlint -p /tmp/vimlparser ./syntax
      sh /tmp/vimlint/bin/vimlint.sh -l /tmp/vimlint -p /tmp/vimlparser ./mode
    elif [ "$LINT" = "vimlint-errors" ]; then
      sh /tmp/vimlint/bin/vimlint.sh -E -l /tmp/vimlint -p /tmp/vimlparser ./config
      sh /tmp/vimlint/bin/vimlint.sh -E -l /tmp/vimlint -p /tmp/vimlparser ./autoload
      sh /tmp/vimlint/bin/vimlint.sh -E -l /tmp/vimlint -p /tmp/vimlparser ./ftplugin
      sh /tmp/vimlint/bin/vimlint.sh -E -l /tmp/vimlint -p /tmp/vimlparser ./syntax
      sh /tmp/vimlint/bin/vimlint.sh -E -l /tmp/vimlint -p /tmp/vimlparser ./mode
    elif [ "$LINT" = "vint" ]; then
      vint .
    elif [ "$LINT" = "vint-errors" ]; then
      vint --error .
    elif [ "$LINT" = "vader" ]; then
      vim -Nu test/test.vim -c 'Vader! test/**'
    fi