diff options
-rw-r--r-- | lib/Config/HAProxy.pm | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/Config/HAProxy.pm b/lib/Config/HAProxy.pm index 794a80f..44cc3fb 100644 --- a/lib/Config/HAProxy.pm +++ b/lib/Config/HAProxy.pm | |||
@@ -13,10 +13,10 @@ use File::Basename; | |||
13 | use File::Temp qw(tempfile); | 13 | use File::Temp qw(tempfile); |
14 | use File::stat; | 14 | use File::stat; |
15 | use File::Spec; | 15 | use File::Spec; |
16 | use IPC::Cmd; | 16 | use IPC::Cmd qw(run); |
17 | use Carp; | 17 | use Carp; |
18 | 18 | ||
19 | our $VERSION = '1.03'; | 19 | our $VERSION = '1.04'; |
20 | 20 | ||
21 | my %sections = ( | 21 | my %sections = ( |
22 | global => 1, | 22 | global => 1, |
@@ -231,12 +231,14 @@ sub save { | |||
231 | DIR => dirname($self->filename)); | 231 | DIR => dirname($self->filename)); |
232 | $self->write($fh, @wrargs); | 232 | $self->write($fh, @wrargs); |
233 | close($fh); | 233 | close($fh); |
234 | |||
235 | if (my $cmd = $self->lint) { | 234 | if (my $cmd = $self->lint) { |
236 | my ($ok, $err, undef, undef, $errbuf) = | 235 | my ($ok, $err, $full, $outbuf, $errbuf) = |
237 | IPC::Cmd->run(command => "$cmd $tempfile"); | 236 | run(command => "$cmd $tempfile"); |
238 | unless ($ok) { | 237 | unless ($ok) { |
239 | croak "Syntax check failed: $errbuf\n"; | 238 | if ($errbuf && @$errbuf) { |
239 | croak "Syntax check failed: ".join("\n", @$errbuf)."\n"; | ||
240 | } | ||
241 | croak $err; | ||
240 | } | 242 | } |
241 | } | 243 | } |
242 | return 1 if $dry_run; | 244 | return 1 if $dry_run; |