git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Junio C HamanoNext: Jeff King
Message 8 of 11 in “[RFC] Add basic syntax check on shell scripts”
  1. Torsten BögershausenDec 2, 2012
  2. Stefano LattariniDec 2, 2012
  3. Junio C HamanoDec 3, 2012
  4. Nguyen Thai Ngoc DuyDec 4, 2012
  5. Junio C HamanoDec 4, 2012
  6. Nguyen Thai Ngoc DuyDec 5, 2012
  7. Junio C HamanoDec 5, 2012
  8. Jeff KingDec 5, 2012
  9. Jeff KingDec 5, 2012
  10. Junio C HamanoDec 5, 2012
  11. Sebastian SchuberthDec 5, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.