Re: [PATCH 1/2] Add infrastructure for translating Git with gettext
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:48:58
On Mon, Jun 14, 2010 at 21:56, Thomas Rast [off-list ref] wrote:
Ævar Arnfjörð Bjarmason wrote:quoted
It turns out that this doesn't actually work, and I can't find a workaround. In Bash and Solaris's /bin/sh this executes until "dies here". The problem is that I can't use the subshell trick, since the gettext.sh inclusion has to be done in the current shell (I checked, tests will fail). #!/bin/sh (. does-not-exist.sh) echo "A subshell made it! ret = $?" . does-not-exist.sh # dies here echo "A real shell made it! ret = $?" Is there some clever shellscript trick that I'm missing, or will I have to resort to modifying the file at `make' time for this to work everywhere?Works for me in bash (4.0.35), but fails the way you say in dash (if only I could figure out the option that tells me the version!). This works however: type does-not-exist.sh 2>/dev/null && . does-not-exist.sh
Thanks. That works, I've tested the following script:
#!/bin/sh
type meh.sh >/dev/null 2>&1 && . meh.sh && echo "Included meh.sh"
|| echo "Didn't include meh.sh"
echo "I've made it!"
type gettext.sh >/dev/null 2>&1 && . gettext.sh && echo "Included
gettext.sh" || echo "Didn't include gettext.sh"
echo "I've made it!"
On the following:
FreeBSD: /bin/sh, bash
Solaris: /bin/sh, /usr/bin/ksh, bash,
Debian: dash, bash
They all make it to the last "I've made it!".
I suspect it only works if the script is executable, as otherwise type would not find it (but . would). But at least on my system, it is.
With gettext.sh the assumption that it's +x seems valid, the installation script for GNU gettext always gives it an executable bit.