in build_docs.pl [794:845]
sub preview {
#===================================
$Opts->{target_repo} = 'git@github.com:elastic/built-docs.git' unless ( $Opts->{target_repo} );
my $nginx_config = file('/tmp/nginx.conf');
write_nginx_preview_config( $nginx_config );
if ( my $nginx_pid = fork ) {
my ( $repos_dir, $temp_dir, $reference_dir ) = init_dirs();
my $target_repo;
unless ( $Opts->{gapped} ) {
say "Cloning built docs";
$target_repo = init_target_repo( $repos_dir, $temp_dir, $reference_dir );
}
say "Built docs are ready";
my $default_template = $Opts->{gapped} ? "air_gapped_template.html" : "template.html";
my $preview_pid = start_preview(
'git', '/docs_build/.repos/target_repo.git', $default_template, $Opts->{gapped}
);
$SIG{TERM} = sub {
# We should be a good citizen and shut down the subprocesses.
# This isn't so important in k8s or docker because we shoot
# the entire container when we're done, but it is nice when
# testing.
say 'Terminating preview services...nginx';
kill 'TERM', $nginx_pid;
wait;
say 'Terminating preview services...preview';
kill 'TERM', $preview_pid;
wait;
say 'Terminated preview services';
exit 0;
};
if ( $Opts->{gapped} ) {
wait;
} else {
while (1) {
sleep 1;
my $fetch_result = eval { $target_repo->fetch };
say $fetch_result if $fetch_result;
say $@ if $@;
}
}
exit;
} else {
close STDIN;
open( STDIN, "</dev/null" );
exec( qw(nginx -c), $nginx_config );
}
}