From 679e3acbc1a786a6e985bee12f97958a7c3e9cf1 Mon Sep 17 00:00:00 2001 From: Tony Grosinger Date: Fri, 28 Apr 2017 08:57:23 -0700 Subject: [PATCH] Adding custom go-metalinter script Only runs on files which have been modified. --- .vimrc | 5 ++--- bin/git-metalint | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100755 bin/git-metalint diff --git a/.vimrc b/.vimrc index a66254f..8b28abd 100644 --- a/.vimrc +++ b/.vimrc @@ -114,9 +114,8 @@ au FileType go nmap gl (go-metalinter) let g:go_auto_type_info = 0 let g:go_fmt_command = "goimports" let g:go_metalinter_autosave = 1 -let g:go_metalinter_autosave_enabled = ['vet', 'golint', 'errcheck', 'varcheck'] -let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck', 'varcheck', 'aligncheck', 'ineffassign', 'gosimple', 'staticcheck'] -let g:go_metalinter_deadline = '10s' +let g:go_metalinter_command = "git metalinter" + " Python Support {{{1 Plug 'klen/python-mode' diff --git a/bin/git-metalint b/bin/git-metalint new file mode 100755 index 0000000..f66961d --- /dev/null +++ b/bin/git-metalint @@ -0,0 +1,30 @@ +#!/usr/bin/python + +import subprocess +import sys +import os +from os import path + +# Find the git root directory +cwd = os.getcwd() +while (".git" not in os.listdir(cwd)) and cwd != "/": + cwd = path.dirname(cwd) + +if cwd == "/": + print("Could not find the git repository root") + sys.exit(1) + +# Run the metalinter commands from the root directory +os.chdir(cwd) + +files = subprocess.check_output(["git", "diff", "--name-only"]) +files_list = files.splitlines() + +if len(files_list) == 0: + sys.exit(0) + +dirs_list = map(path.dirname, files_list) +dirs_list = set(dirs_list) + +for dir in dirs_list: + subprocess.call(["gometalinter", dir])