blob: bdbd6f7feb0448ba2008f5be8e3d029fdb6dc448 [file] [log] [blame]
from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals
from typing import Optional
from typing import Sequence
from pre_commit_hooks.util import cmd_output
def main(argv=None): # type: (Optional[Sequence[str]]) -> int
# `argv` is ignored, pre-commit will send us a list of files that we
# don't care about
added_diff = cmd_output(
'git', 'diff', '--staged', '--diff-filter=A', '--raw',
)
retv = 0
for line in added_diff.splitlines():
metadata, filename = line.split('\t', 1)
new_mode = metadata.split(' ')[1]
if new_mode == '160000':
print('{}: new submodule introduced'.format(filename))
retv = 1
if retv:
print()
print('This commit introduces new submodules.')
print('Did you unintentionally `git add .`?')
print('To fix: git rm {thesubmodule} # no trailing slash')
print('Also check .gitmodules')
return retv
if __name__ == '__main__':
exit(main())