diff --git a/scripts/zsh.pl b/scripts/zsh.pl index 6bcbb739b..f0d8c195f 100755 --- a/scripts/zsh.pl +++ b/scripts/zsh.pl @@ -38,7 +38,7 @@ sub parse_main_opts { my ($cmd, $regex) = @_; my @list; - my @lines = split /\n/, `"$curl" $cmd`; + my @lines = call_curl($cmd); foreach my $line (@lines) { my ($short, $long, $arg, $desc) = ($line =~ /^$regex/) or next; @@ -74,4 +74,15 @@ sub parse_main_opts { return @list; } -sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s }; +sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s }; + +sub call_curl { + my ($cmd) = @_; + my $output = `"$curl" $cmd`; + if ($? == -1) { + die "Could not run curl: $!"; + } elsif ((my $exit_code = $? >> 8) != 0) { + die "curl returned $exit_code with output:\n$output"; + } + return split /\n/, $output; +}