1*cdf0e10cSrcweir#*************************************************************************
2*cdf0e10cSrcweir#
3*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir#
5*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir#
7*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir#
9*cdf0e10cSrcweir# This file is part of OpenOffice.org.
10*cdf0e10cSrcweir#
11*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir# only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir#
15*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir#
21*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir# version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir# <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir# for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir#
26*cdf0e10cSrcweir#*************************************************************************
27*cdf0e10cSrcweir
28*cdf0e10cSrcweirpackage installer::windows::java;
29*cdf0e10cSrcweir
30*cdf0e10cSrcweiruse installer::exiter;
31*cdf0e10cSrcweiruse installer::files;
32*cdf0e10cSrcweiruse installer::globals;
33*cdf0e10cSrcweiruse installer::windows::idtglobal;
34*cdf0e10cSrcweir
35*cdf0e10cSrcweir####################################################################################
36*cdf0e10cSrcweir# Writing content into RegLocat.idt and AppSearc.idt to find Java on system
37*cdf0e10cSrcweir####################################################################################
38*cdf0e10cSrcweir
39*cdf0e10cSrcweirsub update_java_tables
40*cdf0e10cSrcweir{
41*cdf0e10cSrcweir	my ($basedir, $allvariables) = @_;
42*cdf0e10cSrcweir
43*cdf0e10cSrcweir	my $reglocatfile = "";
44*cdf0e10cSrcweir	my $appsearchfile = "";
45*cdf0e10cSrcweir
46*cdf0e10cSrcweir	my $reglocatfilename = $basedir . $installer::globals::separator . "RegLocat.idt";
47*cdf0e10cSrcweir	my $appsearchfilename = $basedir . $installer::globals::separator . "AppSearc.idt";
48*cdf0e10cSrcweir	my $signaturefilename = $basedir . $installer::globals::separator . "Signatur.idt";
49*cdf0e10cSrcweir
50*cdf0e10cSrcweir	if ( -f $reglocatfilename )
51*cdf0e10cSrcweir	{
52*cdf0e10cSrcweir		$reglocatfile = installer::files::read_file($reglocatfilename);
53*cdf0e10cSrcweir	}
54*cdf0e10cSrcweir	else
55*cdf0e10cSrcweir	{
56*cdf0e10cSrcweir		my @reglocattable = ();
57*cdf0e10cSrcweir		$reglocatfile = \@reglocattable;
58*cdf0e10cSrcweir		installer::windows::idtglobal::write_idt_header($reglocatfile, "reglocat");
59*cdf0e10cSrcweir	}
60*cdf0e10cSrcweir
61*cdf0e10cSrcweir	if ( -f $appsearchfilename )
62*cdf0e10cSrcweir	{
63*cdf0e10cSrcweir		$appsearchfile = installer::files::read_file($appsearchfilename);
64*cdf0e10cSrcweir	}
65*cdf0e10cSrcweir	else
66*cdf0e10cSrcweir	{
67*cdf0e10cSrcweir		my @appsearchtable = ();
68*cdf0e10cSrcweir		$appsearchfile = \@appsearchtable;
69*cdf0e10cSrcweir		installer::windows::idtglobal::write_idt_header($appsearchfile, "appsearch");
70*cdf0e10cSrcweir	}
71*cdf0e10cSrcweir
72*cdf0e10cSrcweir	if ( -f $signaturefilename )
73*cdf0e10cSrcweir	{
74*cdf0e10cSrcweir		$signaturefile = installer::files::read_file($signaturefilename);
75*cdf0e10cSrcweir	}
76*cdf0e10cSrcweir	else
77*cdf0e10cSrcweir	{
78*cdf0e10cSrcweir		my @signaturetable = ();
79*cdf0e10cSrcweir		$signaturefile = \@signaturetable;
80*cdf0e10cSrcweir		installer::windows::idtglobal::write_idt_header($signaturefile, "signatur");
81*cdf0e10cSrcweir	}
82*cdf0e10cSrcweir
83*cdf0e10cSrcweir	# Writing content into this tables
84*cdf0e10cSrcweir	# Java version is saved in scp project
85*cdf0e10cSrcweir	# $installer::globals::javafile was defined in installer::windows::idtglobal::add_childprojects
86*cdf0e10cSrcweir
87*cdf0e10cSrcweir	if ( ! $installer::globals::javafile->{'Javaversion'} ) { installer::exiter::exit_program("ERROR: \"Javaversion\" has to be defined in $installer::globals::javafile->{'gid'} in scp project!", "update_java_tables"); }
88*cdf0e10cSrcweir
89*cdf0e10cSrcweir	my $javastring = $installer::globals::javafile->{'Javaversion'};
90*cdf0e10cSrcweir
91*cdf0e10cSrcweir	my $signature = "JavaReg";
92*cdf0e10cSrcweir	my $rootvalue = "2";
93*cdf0e10cSrcweir	my $key = "Software\\JavaSoft\\Java Runtime Environment\\" . $javastring;
94*cdf0e10cSrcweir	my $name = "JavaHome";
95*cdf0e10cSrcweir	my $type = 2;
96*cdf0e10cSrcweir	my $property = "JAVAPATH";
97*cdf0e10cSrcweir
98*cdf0e10cSrcweir	my $oneline = $signature . "\t" . $rootvalue . "\t" . $key . "\t" . $name . "\t" . $type . "\n";
99*cdf0e10cSrcweir	push(@{$reglocatfile}, $oneline);
100*cdf0e10cSrcweir
101*cdf0e10cSrcweir	$oneline = $property . "\t" . $signature . "\n";
102*cdf0e10cSrcweir	push(@{$appsearchfile}, $oneline);
103*cdf0e10cSrcweir
104*cdf0e10cSrcweir	# Saving the files
105*cdf0e10cSrcweir
106*cdf0e10cSrcweir	installer::files::save_file($reglocatfilename ,$reglocatfile);
107*cdf0e10cSrcweir	my $infoline = "Updated idt file for Java: $reglocatfilename\n";
108*cdf0e10cSrcweir	push(@installer::globals::logfileinfo, $infoline);
109*cdf0e10cSrcweir
110*cdf0e10cSrcweir	installer::files::save_file($appsearchfilename ,$appsearchfile);
111*cdf0e10cSrcweir	$infoline = "Updated idt file for Java: $appsearchfilename\n";
112*cdf0e10cSrcweir	push(@installer::globals::logfileinfo, $infoline);
113*cdf0e10cSrcweir
114*cdf0e10cSrcweir	installer::files::save_file($signaturefilename ,$signaturefile);
115*cdf0e10cSrcweir	$infoline = "Updated idt file: $signaturefilename\n";
116*cdf0e10cSrcweir	push(@installer::globals::logfileinfo, $infoline);
117*cdf0e10cSrcweir
118*cdf0e10cSrcweir}
119*cdf0e10cSrcweir
120*cdf0e10cSrcweir1;
121