[PATCH 1/2] tests: add write_script helper function
- From
Jeff King <peff@peff.net>
- Date
- Feb 4, 2012, 06:29 UTC
- Message-ID
- <20120204062901.GA21559@sigill.intra.peff.net>
- In-Reply-To
- <20120204062712.GA20076@sigill.intra.peff.net>
From: Junio C Hamano <gitster@pobox.com>
Many of the scripts in the test suite write small helper shell scripts to disk. It's best if these shell scripts start with "#!$SHELL_PATH" rather than "#!/bin/sh", because /bin/sh on some platforms is too buggy to be used.
However, it can be cumbersome to expand $SHELL_PATH, because the usual recipe for writing a script is:
cat >foo.sh <<-\EOF #!/bin/sh echo my arguments are "$@" EOF
To expand $SHELL_PATH, you have to either interpolate the here-doc (which would require quoting "\$@"), or split the creation into two commands (interpolating the $SHELL_PATH line, but not the rest of the script). Let's provide a helper function that makes that less syntactically painful.
While we're at it, this helper can also take care of the "chmod +x" that typically comes after the creation of such a script, saving the caller a line.
Signed-off-by: Jeff King <peff@peff.net> --- I suspect you already have this in your repo, but maybe the commit message is useful.
t/test-lib.sh | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh index b22bee7..254849e 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -400,6 +400,14 @@ test_config_global () { git config --global "$@" } +write_script () { + { + echo "#!${2-"$SHELL_PATH"}" && + cat + } >"$1" && + chmod +x "$1" +} + # Use test_set_prereq to tell that a particular prerequisite is available. # The prerequisite can later be checked for in two ways: #
-- 1.7.9.rc1.28.gf4be5