This defers SIGINT handling to the underlying mozlint subprocess. Mozlint *should*
return quickly and gracefully. This way the hook process itself will not abort, just
the linting. After hitting Ctrl-C, the vcs operation should continue as if the lint
were successful.
If mozlint had already found some errors before hitting Ctrl-C, those should get
printed and could potentially abort the hook.
MozReview-Commit-ID: BKXq1dXuMlB
The args passed in from the git pre-push hook aren't necessarily a valid ref,
so can result in failure. By default, the git implementation should be smart
enough to automatically determine which ref to compare against, so passing this
in from the hook shouldn't be necessary.
MozReview-Commit-ID: ESMQqbeGOHd
The eslint task ignores warnings, therefore the vcs hook should as well. The --quiet argument will
be ignored by other linters.
This also makes tools/lint/hooks.py executable which was preventing it from being used on git.
MozReview-Commit-ID: DXbx01shJmX
This adds pre-push and pre-commit hooks for both hg and git. All
four possibilities are implemented in the same file.
To enable a pre-push hg hook, add the following to hgrc:
[hooks]
pre-push.lint = python:/path/to/gecko/tools/lint/hooks.py:hg
To enable a pre-commit hg hook, add the following to hgrc:
[hooks]
pretxncommit.lint = python:/path/to/gecko/tools/lint/hooks.py:hg
To enable a pre-push git hook, run the following command:
$ ln -s /path/to/gecko/tools/lint/hooks.py .git/hooks/pre-push
To enable a pre-commit git hook, run the following command:
$ ln -s /path/to/gecko/tools/lint/hooks.py .git/hooks/pre-commit
MozReview-Commit-ID: DUxCKN2fiag