zsh-users
 help / color / mirror / code / Atom feed
From: Dominik Reichardt <domiman@gmail.com>
To: zsh-users@zsh.org
Subject: Re: Apple bash to zsh script problems with error control and bash emulation
Date: Mon, 16 Nov 2020 20:45:53 +0100	[thread overview]
Message-ID: <4254F6E5-249B-4DFF-8D4D-6D253D15AFB2@gmail.com> (raw)
In-Reply-To: <20201116180129.4f6a851f@tarpaulin.shahaf.local2>



> On 16. Nov 2020, at 19:01, Daniel Shahaf <d.s@daniel.shahaf.name> wrote:
> 
> Dominik Reichardt wrote on Mon, 16 Nov 2020 16:00 +0100:
>> I’ve recently moved to zsh as Apple is pressuring us :)
>> 
> 
> The easiest solution is to keep the script as «#!/usr/bin/env bash»:
> 
> https://github.com/zsh-users/zsh/blob/04bd9a44a74683ad0d83921bfb3aa0c4d5992c75/Etc/FAQ.yo#L2056-L2102

oddly enough, this doesn’t seem to work as expected with my old script on both macOS 10.15 and 11.0. Several things I declare in the function.sh seems as if they don’t exist.
For example that "alias autogen='./autogen.sh > /dev/null 2>&1’”, when I run the script it returns "./exultsnapshot.sh: line 45: autogen: command not found”.
Something changed...

> 
>> Something goes wrong in the error(), pipestatus() and teelog() functions, I guess. But I can’t quite tell and I’ve built that script 5 years ago and am a bit rusty to what each of those function do exactly.
> 
> Well, for starters, $PIPESTATUS doesn't expand to what you think it
> does.

I fixed this behaviour when I turned off bash emulation and used the lower case pipestatus[@] in my function. Seems that didn’t work correctly either way in the bash emulation and thus disturbed my error() function. Now it works again and prints me the error of which command in my build() function failed and then exits the script.

> 
>> What I expect is that when the script runs into an error it stops, even if the error happens in one of the functions but currently the script goes on and on. This used to work before in bash.
> 
> See «set -e».  You probably have it set in your bash global setup.
> 
> See also the ERR_RETURN option.
> 
>> If I get rid of the —emulate sh, my variables don’t get passed on correctly (the error I get in the shorted version of my script is "configure: error: unrecognized option: `-q --disable-data --with-macosx-static-lib-path=/opt/i386/lib’”
>> 
> 
> http://zsh.sourceforge.net/FAQ/zshfaq03.html#l18

Thanks, I have to confess I understood only parts of it, but seems that using $CONF_OPT $CONF_ARGS as ${=CONF_OPT} ${=CONF_ARGS} fixed my woes.

So now the script runs as expected again without bash emulation! Wheee!



  parent reply	other threads:[~2020-11-16 19:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-16 15:00 Dominik Reichardt
2020-11-16 18:01 ` Daniel Shahaf
2020-11-16 18:10   ` Roman Perepelitsa
2020-11-16 19:45   ` Dominik Reichardt [this message]
2020-11-16 20:11     ` Roman Perepelitsa
2020-11-16 23:15       ` Lewis Butler
2020-11-17  7:08         ` Roman Perepelitsa
2020-11-17 13:03       ` Dominik Reichardt
2020-11-17 15:54         ` Lewis Butler
2020-11-17 16:13           ` Dominik Reichardt
2020-11-17 21:29             ` Roman Perepelitsa
2020-11-17 21:47               ` Bart Schaefer
2020-11-17 22:25                 ` Dominik Reichardt
2020-11-18 10:01                 ` Roman Perepelitsa
2020-11-19 13:31             ` Lewis Butler
2020-11-19 13:55               ` Dominik Reichardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4254F6E5-249B-4DFF-8D4D-6D253D15AFB2@gmail.com \
    --to=domiman@gmail.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).