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

Re: [PATCH] t0300-credentials: Word around a solaris /bin/sh bug

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 3, 2012, 21:50 UTC
Message-ID
<7vr4ybmvrq.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20120203212604.GA1890@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 15 quoted lines
>> without requiring the brain-cycle to waste on the "Is this simple enough
>> for even Solaris to grok?" guess game.  This should also be reusable for
>> other stuff like $PERL_PATH, I would think.
>
> I like it. Even better would be:
>
>   write_script() {
>         echo "#!$2" >"$1" &&
>         cat >>"$1" &&
>         chmod +x "$1"
>   }
>
>   write_script foo.sh "$SHELL_PATH" <<-\EOF
>     echo my arguments are "$@"
>   EOF

I first thought that the order of parameters were unusual, but with that order, you could even go something fancier like:

	write_script () {
		case "$#" in
		1)	case "$1" in
			*.perl | *.pl) echo "#!$PERL_PATH" ;;
			*) echo "#!$SHELL_PATH" ;;
			esac
                2)	echo "#!$2" ;;
		*)	BUG ;;
                esac >"$1" &&
                cat >>"$1" &&
                chmod +x "$1"
	}
	write_script foo.sh
        write_script bar.perl
        write_script pre-receive /no/frobnication/today

The tongue-in-cheek comment aside, I think ${2-"$SHELL_PATH"} or some form of fallback would be a good idea in any case, as 99% of the time what we write in the test scripts is a shell script.

Also "chmod +x" is a very good idea.
        
Previous: Jeff KingNext: Jeff King
Message 10 of 22 in “t0300-credentials: Word around a solaris /bin/sh bug”
  1. t0300-credentials: Word around a solaris /bin/sh bugBen Walton, Feb 2, 2012
  2. Frans KlaverFeb 2, 2012
  3. Ben WaltonFeb 2, 2012
  4. Jeff KingFeb 2, 2012
  5. Junio C HamanoFeb 3, 2012
  6. Jeff KingFeb 3, 2012
  7. Ben WaltonFeb 3, 2012
  8. Junio C HamanoFeb 3, 2012
  9. Jeff KingFeb 3, 2012
  10. Junio C HamanoFeb 3, 2012
  11. Jeff KingFeb 3, 2012
  12. Ben WaltonFeb 3, 2012
  13. Junio C HamanoFeb 3, 2012
  14. Jeff KingFeb 3, 2012
  15. Jeff KingFeb 4, 2012
  16. 1/2 tests: add write_script helper functionJeff King, Feb 4, 2012
  17. 2/2 t0300: use write_script helperJeff King, Feb 4, 2012
  18. Junio C HamanoFeb 4, 2012
  19. Jeff KingFeb 4, 2012
  20. Jonathan NiederFeb 2, 2012
  21. Matthieu MoyFeb 2, 2012
  22. Jonathan NiederFeb 2, 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.