#!/bin/sh
eval 'if [ -x /usr/local/cpanel/3rdparty/bin/perl ]; then exec /usr/local/cpanel/3rdparty/bin/perl -x -- $0 ${1+"$@"}; else exec /usr/bin/perl -x $0 ${1+"$@"}; fi;'
  if 0;

#!/usr/bin/perl

# cpanel - starttomcat                            Copyright(c) 2013 cPanel, Inc.
#                                                           All rights Reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use strict;use warnings; #todd

system '/usr/sbin/stoptomcat';

my $tc = '/usr/local/jakarta/tomcat';

if ( ! -e $tc ) {
        # Note: Should be symlink to apache-tomcat-<VERSION> directory
    die "$0: I cannot proceed, /usr/local/jakarta/tomcat does not exist";
}

$ENV{CATALINA_BASE}   = '/usr/local/jakarta/tomcat';
$ENV{CATALINA_HOME}   = '/usr/local/jakarta/tomcat';
$ENV{CATALINA_TMPDIR} = '/var/tmp';
$ENV{JAVA_HOME}       = '/usr/local/jdk';
$ENV{PATH}            = "$ENV{JAVA_HOME}/bin:$ENV{PATH}:/usr/local/bin:/usr/X11R6/bin";
$ENV{XML}             = "$ENV{JAVA_HOME}/lib";
$ENV{SSL}             = "$ENV{JAVA_HOME}/lib";
$ENV{JAVAMYSQL}       = "$ENV{JAVA_HOME}/lib";
$ENV{CLASSPATH}       = ".:$ENV{JAVA_HOME}/lib/classes.zip";
$ENV{JAKARTA_HOME}    = '/usr/local/jakarta/tomcat';
$ENV{TOMCAT_HOME}     = $ENV{JAKARTA_HOME};
$ENV{CATALINA_HOME}   = "/usr/local/jakarta";

if ( -d "$ENV{JAKARTA_HOME}/lib" ) {
    if ( opendir( my $jk_dir, "$ENV{JAKARTA_HOME}/lib" ) ) {
        while ( my $file = readdir($jk_dir) ) {
            next if ( $file =~ /^\./ );
            $ENV{CLASSPATH} .= ":$ENV{JAKARTA_HOME}/lib/${file}";
        }
        closedir $jk_dir;
    }
    else {
        print "Could not opendir $ENV{JAKARTA_HOME}/lib: $!\n";
    }
}

my $opt_fh;

my @options;
if ( -e '/var/cpanel/tomcat.options' ) {
    if ( open( $opt_fh, '<', '/var/cpanel/tomcat.options' ) ) {
        while ( my $opt = readline($opt_fh) ) {
            chomp($opt);
            push @options, $opt;
            print "Adding in custom Tomcat option(s): $opt\n";
        }
        close $opt_fh;
    }
    else {
        print "Could not open /var/cpanel/tomcat.options: $!\n";
    }
}

chdir "$ENV{JAKARTA_HOME}/bin" or die "Could not chdir into $ENV{JAKARTA_HOME}/bin: $!\n";

my $jars = "./bootstrap.jar";
my $logdir = "../logs"; #prod
my $user = 'tomcat';

my @cmd = (
            "./jsvc",
            "-user",
            "$user",
            "-cp",
            "$jars",
            "-Djava.endorsed.dirs=../common/endorsed",
            "-outfile",
            "${logdir}/catalina.out",
            "-errfile",
            "${logdir}/catalina.err",
            "-verbose",
            @options,
            "org.apache.catalina.startup.Bootstrap",
            #"-security",
            "start",
);

my $ret = system @cmd;
$ret >>= 8;
printf STDERR "Command '%s' returned: %s\n", ( join ' ', @cmd ), $ret;

