}
}
- my $result = "";
my $opts = $self->_build_options($gen_conf->{options});
- $result = $self->_execute_cmd($cmd, $content, $opts);
+ my $result = $self->_execute_cmd($cmd, $content, $opts);
+ if ($self->{last_execute_status}) {
+ # error occured
+ return;
+ }
return $self->add_content($target, $result, $gen_conf->{"content-type"});
}
sub _generate_all {
my $self = shift;
my $targets = $self->{conf}->{targets} || {};
+ my $err = 0;
+ my @err_msgs;
for my $target (keys %$targets) {
- $self->_generate($target);
+ if (!$self->_generate($target)) {
+ $err = 1;
+ push @err_msgs, $self->{last_error_msg};
+ push @err_msgs, $self->{last_result};
+ }
+ }
+ if ($err) {
+ $self->{last_error_msg} = join("\n", @err_msgs);
}
+ return !$err;
}
sub rebuild {
my $self = shift;
- $self->_generate_all;
- return 1;
+ return $self->_generate_all;
}
sub register {
$self->{conf} = {%$conf, %{$app->config->{QuasiStaticContent}}};
$self->{app} = $app;
+ $self->{last_error_msg} = "";
+ $self->{last_execute_status} = 0;
+
$self->_generate_all;
#$self->{contents} = {};
}
my $status = WIFEXITED($?) ? WEXITSTATUS($?) : WTERMSIG($?);
+ $self->{last_error_msg} = $err_msg;
+ $self->{last_execute_status} = $status;
+ $self->{last_result} = $result;
if ($err_msg) {
$self->{app}->log->error("QSC: command $command execute failed - $err_msg");
}
if ($err_msg) {
$self->{app}->log->error($err_msg);
}
- return "";
+ return;
}
return $result;
}