Re: [RFC] Add basic syntax check on shell scripts
- From
Jeff King <peff@peff.net>
- Date
- Dec 5, 2012, 07:30 UTC
- Message-ID
- <20121205073055.GA5776@sigill.intra.peff.net>
- In-Reply-To
- <CACsJy8BtX9fMkGDoVGKzgz7SSinbt0561B1ZKHu6fs+n8ewKGg@mail.gmail.com>
On Wed, Dec 05, 2012 at 12:43:30PM +0700, Nguyen Thai Ngoc Duy wrote:
Show 10 quoted lines
> On Wed, Dec 5, 2012 at 2:39 AM, Junio C Hamano <gitster@pobox.com> wrote: > >> Or a project commit hook? > > > > Surely. It is OK to have "cd t && make test-lint" in your > > pre-commit hook. > > No, what I meant is a shared pre-commit script that all git devs are > encouraged (or forced) to install so bugs are found locally rather > than after patches are sent to you. The hook content does not really > matter.
I think that is orthogonal. You would want to implement the guts of such a hook outside the hook itself, so that it could be run at arbitrary times. So even if we want such a hook, the development should probably look like:
1. Implement checks in t/Makefile, triggered by "make test-lint" or
similar.2. Run "make test-lint" in a hook.
I do not use such a hook myself, but I do run "test-lint" as part of my "make test", and I "make test" each series I send (and if the series has non-trivial refactoring, each individual patch of the series to catch breakages that come and go during refactoring). But I decide when to run those checks, not a hook.
Anyway, I do think a "shell portability lint" would be a great addition to "test-lint", but I am slightly skeptical that it will be easy to write a good one that does not have false positives. Still, there may be some low-hanging fruit. I have not looked carefully at Torsten's patch yet.
-Peff