#!/usr/bin/perl

# cpanel - /scripts/installjava        Copyright(c) 1997-2004 cPanel, Inc.
#                                 All rights Reserved.
# nick@cpanel.net      http://cpanel.net
# This code is subject to the cpanel license. Unauthorized copying is prohibited


BEGIN {
   push(@INC,"/scripts");
   push(@INC,"/usr/local/cpanel");
}
      
use Sys::Hostname qw(hostname);
use POSIX;
use IPC::Open3;
      
umask(0022);
my($hostname) = hostname();
my($sysname, $nodename, $release, $version, $machine) = POSIX::uname();

if ($sysname =~ /freebsd/i) {
        print "<b>FreeBSD cannot be supported due to lack of java support from Sun Microsystems.</b>\n";
	exit();
}

system("/scripts/updatenow");
my $libcv = `/lib/libc.so.6`;
$libcv =~ /version\s+([\d\.]+)/;
my $glibcversion = $1;

my $javaname = "j2sdk-1_4_2_05";
if ($glibcversion < 2.3) {
        $javaname = "j2sdk-1_4_0_04";
}
my $javafile = "${javaname}-linux-i586.bin";

my $jkfile = "jakarta-tomcat-connectors-jk-1.2-src-current.tar.gz";
my $installdir = `pwd`;
chomp($installdir);

if ( ! -e "/usr/local/jdk/bin" ) {
  print "Now installing ${javaname}...\n";
  chdir("/usr/local");
  $ENV{PATH}="/usr/local:$ENV{PATH}";
  if (! -e $javafile) {
          system("wget","-O","$javafile","http://layer1.cpanel.net/buildapache/1/$javafile");
  }
  chmod(0700,$javafile);
  if (my $pid = fork()) {
        waitpid($pid,0);
  } else {
        open3(\*JF,\*RDR,">&STDERR","./$javafile");
        while(<RDR>) {
                print;
                if (/replace\s+/) {
                        print JF "A\n";
                } elsif (/above license terms/) {
                        print JF "yes\n";
                }
        }
        close(RDR);
        close(JF);
        exit();
  }
        unlink("jdk");
  my $linkedname = $javaname;
  $linkedname =~ s/\-//g;
  $linkedname =~ s/\_{1}/\./;
  $linkedname =~ s/\_{1}/\./;
  symlink(${linkedname},"jdk");
  unlink("/usr/local/${javaname}-linux-i586.bin");
  print "Done\n";
}
else { print "Java is already up to date\n"; }
