#!/usr/bin/env perl
use Cwd qw(getcwd abs_path);
use File::Basename qw(dirname basename);
use File::Temp qw(tempfile);
use File::Spec::Functions qw(catfile);

my $libexec = abs_path(dirname(abs_path(__FILE__)));
my $apicast = abs_path($ENV{APICAST_DIR} || catfile($libexec, '..'));

my $ssl_cert_file = $ENV{SSL_CERT_FILE} || catfile($apicast, 'conf', 'ca-bundle.crt');
my $lua_file = catfile($libexec, basename(__FILE__) . '.lua');
my $errlog_level = $ENV{APICAST_LOG_LEVEL} || 'warn';

my ($fh, $ssl_conf_file) = tempfile();

print $fh <<_NGINX_;
lua_ssl_verify_depth 5;
lua_ssl_trusted_certificate "${ssl_cert_file}";
_NGINX_

my @resty_args = (
    '--errlog-level', $errlog_level,
    '--http-include', $ssl_conf_file,
);

my $nginx = $ENV{APICAST_OPENRESTY_BINARY} || $ENV{TEST_NGINX_BINARY};
if (defined $nginx) {
    push @resty_args, '--nginx', $nginx;
}

exec 'resty',
    @resty_args,
    $lua_file, @ARGV;
