88 lines
1.9 KiB
Bash
88 lines
1.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Run all linting tools.
|
|
#
|
|
|
|
set -euC
|
|
vimgodir=$(cd -P "$(dirname "$0")/.." > /dev/null && pwd)
|
|
cd "$vimgodir"
|
|
|
|
### Setup Vim and other dependencies.
|
|
#####################################
|
|
if [ -z "${1:-}" ]; then
|
|
echo "unknown version: '${1:-}'"
|
|
echo "First argument must be 'vim-8.0' or 'nvim'."
|
|
exit 1
|
|
fi
|
|
|
|
vim=$1
|
|
vimdir="/tmp/vim-go-test/$vim-install"
|
|
export GOPATH=$vimdir
|
|
export PATH=${GOPATH}/bin:$PATH
|
|
|
|
if [ ! -f "$vimdir/bin/vim" ]; then
|
|
echo "$vimdir/bin/vim doesn't exist; did you install it with the install-vim script?"
|
|
exit 1
|
|
fi
|
|
|
|
### Run vint
|
|
############
|
|
failed=0
|
|
printf "Running vint ... "
|
|
if [ -x "$(command -v vint)" ]; then
|
|
lint=$(vint "$vimgodir" 2>&1 ||:)
|
|
if [ -n "$lint" ]; then
|
|
echo "FAILED"
|
|
echo "$lint"
|
|
echo
|
|
failed=6
|
|
else
|
|
echo "PASSED"
|
|
fi
|
|
else
|
|
echo "SKIPPED"
|
|
echo "'vint' binary not found; use 'pip install vim-vint' to install it."
|
|
fi
|
|
|
|
### Run vim-vimlint
|
|
###################
|
|
printf "Running vim-vimlint ... "
|
|
lint=$(sh "$vimdir/share/vim/vimgo/pack/vim-go/start/vim-vimlint/bin/vimlint.sh" \
|
|
-p "$vimdir/share/vim/vimgo/pack/vim-go/start/vim-vimlparser" \
|
|
-l "$vimdir/share/vim/vimgo/pack/vim-go/start/vim-vimlint" \
|
|
-u \
|
|
-c func_abort=1 \
|
|
-e EVL110=1 -e EVL103=1 -e EVL104=1 -e EVL102=1 \
|
|
"$vimgodir" \
|
|
2>&1 ||:)
|
|
if [ -n "$lint" ]; then
|
|
echo "FAILED"
|
|
echo "$lint"
|
|
echo
|
|
failed=6
|
|
else
|
|
echo "PASSED"
|
|
fi
|
|
|
|
### Run vimhelplint.
|
|
####################
|
|
printf "Running vimhelplint ... "
|
|
|
|
# set modeline explicitly so that the modeline will be respected when run as root.
|
|
lint=$($vimdir/bin/vim -esNR \
|
|
--cmd "set rtp+=$vimdir/share/vim/vimgo/pack/vim-go/start/vim-vimhelplint/" \
|
|
--cmd 'set modeline' \
|
|
+'filetype plugin on' \
|
|
+"e $vimgodir/doc/vim-go.txt" \
|
|
+'verbose VimhelpLintEcho' \
|
|
+q \
|
|
2>&1 ||:)
|
|
if [ "$lint" ]; then
|
|
echo "FAILED"
|
|
echo "$lint"
|
|
failed=6
|
|
else
|
|
echo "PASSED"
|
|
fi
|
|
|
|
exit "$failed"
|