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::copyproject;
29*cdf0e10cSrcweir
30*cdf0e10cSrcweiruse installer::control;
31*cdf0e10cSrcweiruse installer::converter;
32*cdf0e10cSrcweiruse installer::files;
33*cdf0e10cSrcweiruse installer::globals;
34*cdf0e10cSrcweiruse installer::logger;
35*cdf0e10cSrcweiruse installer::mail;
36*cdf0e10cSrcweiruse installer::systemactions;
37*cdf0e10cSrcweiruse installer::worker;
38*cdf0e10cSrcweir
39*cdf0e10cSrcweir####################################################
40*cdf0e10cSrcweir# Including header files into the logfile
41*cdf0e10cSrcweir####################################################
42*cdf0e10cSrcweir
43*cdf0e10cSrcweirsub copy_project
44*cdf0e10cSrcweir{
45*cdf0e10cSrcweir	my ( $filesref, $scpactionsref, $loggingdir, $languagestringref, $shipinstalldir, $allsettingsarrayref ) = @_;
46*cdf0e10cSrcweir
47*cdf0e10cSrcweir	# Creating directories
48*cdf0e10cSrcweir
49*cdf0e10cSrcweir	installer::logger::include_header_into_logfile("Creating installation directory");
50*cdf0e10cSrcweir
51*cdf0e10cSrcweir	my $current_install_number = "";
52*cdf0e10cSrcweir
53*cdf0e10cSrcweir	my $installdir = installer::worker::create_installation_directory($shipinstalldir, $languagestringref, \$current_install_number);
54*cdf0e10cSrcweir
55*cdf0e10cSrcweir	my $installlogdir = installer::systemactions::create_directory_next_to_directory($installdir, "log");
56*cdf0e10cSrcweir
57*cdf0e10cSrcweir	# Copy files and ScpActions
58*cdf0e10cSrcweir
59*cdf0e10cSrcweir	installer::logger::include_header_into_logfile("Copying files:");
60*cdf0e10cSrcweir
61*cdf0e10cSrcweir	# copy Files
62*cdf0e10cSrcweir
63*cdf0e10cSrcweir	for ( my $i = 0; $i <= $#{$filesref}; $i++ )
64*cdf0e10cSrcweir	{
65*cdf0e10cSrcweir		my $onefile = ${$filesref}[$i];
66*cdf0e10cSrcweir
67*cdf0e10cSrcweir		my $source = $onefile->{'sourcepath'};
68*cdf0e10cSrcweir		my $destination = $installdir . $installer::globals::separator . $onefile->{'Name'};
69*cdf0e10cSrcweir
70*cdf0e10cSrcweir		installer::systemactions::copy_one_file($source, $destination);
71*cdf0e10cSrcweir
72*cdf0e10cSrcweir		if ( $destination =~ /install\s*$/ )
73*cdf0e10cSrcweir		{
74*cdf0e10cSrcweir			my $localcall = "chmod 775 $destination \>\/dev\/null 2\>\&1";
75*cdf0e10cSrcweir			system($localcall);
76*cdf0e10cSrcweir		}
77*cdf0e10cSrcweir
78*cdf0e10cSrcweir        	if ( $onefile->{'UnixRights'} )
79*cdf0e10cSrcweir		{
80*cdf0e10cSrcweir			my $localcall = "chmod $onefile->{'UnixRights'} $destination \>\/dev\/null 2\>\&1";
81*cdf0e10cSrcweir			system($localcall);
82*cdf0e10cSrcweir        	}
83*cdf0e10cSrcweir	}
84*cdf0e10cSrcweir
85*cdf0e10cSrcweir	# copy ScpActions
86*cdf0e10cSrcweir
87*cdf0e10cSrcweir	for ( my $i = 0; $i <= $#{$scpactionsref}; $i++ )
88*cdf0e10cSrcweir	{
89*cdf0e10cSrcweir		my $onefile = ${$scpactionsref}[$i];
90*cdf0e10cSrcweir
91*cdf0e10cSrcweir		my $source = $onefile->{'sourcepath'};
92*cdf0e10cSrcweir		my $destination = $installdir . $installer::globals::separator . $onefile->{'DestinationName'};
93*cdf0e10cSrcweir
94*cdf0e10cSrcweir		installer::systemactions::copy_one_file($source, $destination);
95*cdf0e10cSrcweir
96*cdf0e10cSrcweir		if ( $destination =~ /install\s*$/ )
97*cdf0e10cSrcweir		{
98*cdf0e10cSrcweir			my $localcall = "chmod 775 $destination \>\/dev\/null 2\>\&1";
99*cdf0e10cSrcweir			system($localcall);
100*cdf0e10cSrcweir		}
101*cdf0e10cSrcweir
102*cdf0e10cSrcweir		if ( $onefile->{'UnixRights'} )
103*cdf0e10cSrcweir		{
104*cdf0e10cSrcweir			my $localcall = "chmod $onefile->{'UnixRights'} $destination \>\/dev\/null 2\>\&1";
105*cdf0e10cSrcweir			system($localcall);
106*cdf0e10cSrcweir		}
107*cdf0e10cSrcweir	}
108*cdf0e10cSrcweir
109*cdf0e10cSrcweir	# Analyzing the log file
110*cdf0e10cSrcweir
111*cdf0e10cSrcweir	installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
112*cdf0e10cSrcweir
113*cdf0e10cSrcweir	# That's all
114*cdf0e10cSrcweir
115*cdf0e10cSrcweir	exit(0);
116*cdf0e10cSrcweir}
117*cdf0e10cSrcweir
118*cdf0e10cSrcweir1;
119