Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Stop script if one command returns != 0



On Wed, 14 May 2014 16:21:55 +0200
Florian Lindner <mailinglists@xxxxxx> wrote:
> Ok, just a second after the mail I learned about set -e. The problem is 
> when sourcing the script it kills my entire shell.
> 
> I tried installing a trap
> 
> trap 'echo "Hallo"' TERM INT ABRT EXIT
> 
> (just a as first shot, trying to catch almost anything) but changed 
> nothing.
> 
> Any ideas how do deal with that?

Wrap your sourced file in a function and use the zsh-specific option
ERR_RETURN.

source_with_err_return() {
   setopt localoptions errreturn
   source "$@"
}


Test:

% >script
print Got here
false
print But not here
% source_with_err_return ./script
Got here


& for the paranoid:


% fn2() {
function> source_with_err_return ./script
function> false
function> print Got here OK as ERR_RETURN is no longer on.
function> }
% fn2
Got here
Got here OK as ERR_RETURN is no longer on.


pws



Messages sorted by: Reverse Date, Date, Thread, Author