Another one related to fdo#39747.
The file solenv/bin/modules/installer/configuration.pm isn't used at
all currently. (I see that it was used for a while back in 2004 by
make_installer.pl.) This patch drops the file.
LGPLv3+/MPL
Jordan Ayers
From fc1a7ebdb81cfb927f80a4ba4fb625a40840263f Mon Sep 17 00:00:00 2001
From: Jordan Ayers <jordan.ayers@gmail.com>
Date: Mon, 22 Aug 2011 23:42:00 -0500
Subject: [PATCH] Remove unused perl module.
---
solenv/bin/modules/installer/configuration.pm | 896 -------------------------
1 files changed, 0 insertions(+), 896 deletions(-)
delete mode 100644 solenv/bin/modules/installer/configuration.pm
diff --git a/solenv/bin/modules/installer/configuration.pm
b/solenv/bin/modules/installer/configuration.pm
deleted file mode 100644
index 0fb587f..0000000
--- a/solenv/bin/modules/installer/configuration.pm
+++ /dev/null
@@ -1,896 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-package installer::configuration;
-
-use Cwd;
-use installer::converter;
-use installer::existence;
-use installer::exiter;
-use installer::files;
-use installer::globals;
-use installer::logger;
-use installer::remover;
-use installer::systemactions;
-
-################################################################################
-# Getting package from configurationitem (for instance: org.openoffice.Office)
-# Getting name from configurationitem (for instance: Common)
-################################################################################
-
-sub analyze_path_of_configurationitem
-{
- my ($configurationitemsref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::analyze_path_of_configurationitem :
$#{$configurationitemsref}"); }
-
- my ($startpath, $nodes, $name, $packagename, $onenode, $first, $second, $third, $bracketnode);
-
- for ( my $i = 0; $i <= $#{$configurationitemsref}; $i++ )
- {
- my $oneconfig = ${$configurationitemsref}[$i];
- my $path = $oneconfig->{'Path'};
-
- installer::remover::remove_leading_and_ending_slashes(\$path); # in scp are some path
beginning with "/"
-
- if ( $path =~ /^\s*(.*?)\/(.*)\s*$/ )
- {
- $startpath = $1;
- $nodes = $2;
- }
- else
- {
- installer::exiter::exit_program("ERROR: Unknown format of ConfigurationItem path:
$path", "analyze_path_of_configurationitem");
- }
-
- # Startpath is now: org.openoffice.Setup
- # Nodes is now: Office/Factories/com.sun.star.chart.ChartDocument
-
- # Dividing the startpath into package (org.openoffic) and name (Setup).
-
- $oneconfig->{'startpath'} = $startpath; # saving the startpath into the hash
-
- if ( $startpath =~ /^\s*(\S*)\.(\S*?)\s*$/ )
- {
- $packagename = $1;
- $name = $2;
- $oneconfig->{'name'} = $name;
- $oneconfig->{'packagename'} = $packagename;
- }
- else
- {
- installer::exiter::exit_program("ERROR: Unknown format of ConfigurationItem startpath:
$startpath", "analyze_path_of_configurationitem");
- }
-
- # Collecting all nodes
-
- installer::remover::remove_leading_and_ending_slashes(\$nodes);
-
- my $counter = 1;
-
- # Attention: Do not trust the slash
- # Filters/Filter['StarWriter 5.0 Vorlage/Template']
- # Menus/New/*['m10']/Title
-
- if ( $nodes =~ /^(.*\[\')(.*\/.*)(\'\].*)$/ )
- {
- $first = $1;
- $second = $2;
- $third = $3;
-
- $second =~ s/\//SUBSTITUTEDSLASH/g; # substituting "/" to "SUBSTITUTEDSLASH"
- $nodes = $first . $second . $third;
- }
-
- while ( $nodes =~ /\// )
- {
- if ($nodes =~ /^\s*(.*?)\/(.*)\s*$/ )
- {
- $onenode = $1;
- $nodes = $2;
- $nodename = "node". $counter;
-
- # Special handling for filters. Difference between:
- # Filter['StarWriter 5.0 Vorlage/Template'] without oor:op="replace"
- # *['m10'] with oor:op="replace"
-
- if ( $onenode =~ /^\s*Filter\[\'(.*)\'\].*$/ ) { $oneconfig->{'isfilter'} = 1; }
-
- # Changing the nodes with brackets:
- # Filter['StarWriter 5.0 Vorlage/Template']
- # *['m10']
-
- if ( $onenode =~ /^.*\[\'(.*)\'\].*$/ )
- {
- $onenode = $1;
- $bracketnode = "bracket_" . $nodename;
- $oneconfig->{$bracketnode} = 1;
- }
-
- $onenode =~ s/SUBSTITUTEDSLASH/\//g; # substituting "SUBSTITUTEDSLASH" to "/"
- $oneconfig->{$nodename} = $onenode;
-
- # special handling for nodes "Factories"
-
- if ( $onenode eq "Factories" ) { $oneconfig->{'factoriesnode'} = $counter; }
- else { $oneconfig->{'factoriesnode'} = -99; }
- }
-
- $counter++
- }
-
- # and the final node
-
- if ( $nodes =~ /^\s*Filter\[\'(.*)\'\].*$/ ) { $oneconfig->{'isfilter'} = 1; }
-
- $nodename = "node". $counter;
-
- if ( $nodes =~ /^.*\[\'(.*)\'\].*$/ )
- {
- $nodes = $1;
- $bracketnode = "bracket_" . $nodename;
- $oneconfig->{$bracketnode} = 1;
- }
-
- $nodes =~ s/SUBSTITUTEDSLASH/\//g; # substituting "SUBSTITUTEDSLASH" to "/"
-
- if (($nodes eq "Name") || ($nodes eq "Title")) # isocodes below "Name" or "Title"
- {
- # if the last node $nodes is "Name" or "Title", it is a Property, not a name! See
Common.xcu
-
- $oneconfig->{'isisocode'} = 1;
-
- if ( $nodes eq "Name" ) { $oneconfig->{'isname'} = 1; }
- if ( $nodes eq "Title" ) { $oneconfig->{'istitle'} = 1; }
- $counter--; # decreasing the counter, because "Name" and "Title" are no nodes
- }
- else
- {
- $oneconfig->{$nodename} = $nodes;
- $oneconfig->{'isisocode'} = 0;
- }
-
- # special handling for nodes "Factories"
-
- if ( $onenode eq "Factories" ) { $oneconfig->{'factoriesnode'} = $counter; }
- else { $oneconfig->{'factoriesnode'} = -99; }
-
- # saving the number of nodes
-
- $oneconfig->{'nodenumber'} = $counter;
- }
-}
-
-####################################################################
-# Inserting the start block into a configuration file
-####################################################################
-
-sub insert_start_block_into_configfile
-{
- my ($configfileref, $oneconfig) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::insert_start_block_into_configfile :
$#{$configfileref} : $oneconfig->{'name'}"); }
-
- my $line = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
- push( @{$configfileref}, $line);
-
- $line = '<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:install="http://openoffice.org/2004/installation"
oor:name="FILENAME" oor:package="PACKAGENAME">' . "\n";
- my $packagename = $oneconfig->{'packagename'};
- my $name = $oneconfig->{'name'};
- $line =~ s/PACKAGENAME/$packagename/g;
- $line =~ s/FILENAME/$name/g;
- push( @{$configfileref}, $line);
-
- $line = "\n";
- push( @{$configfileref}, $line);
-}
-
-####################################################################
-# Inserting the end block into a configuration file
-####################################################################
-
-sub insert_end_block_into_configfile
-{
- my ($configfileref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::insert_end_block_into_configfile :
$#{$configfileref}"); }
-
- my $line = "\n" . '</oor:component-data>' . "\n";
- push( @{$configfileref}, $line);
-}
-
-##############################################################
-# Getting the content of a node
-##############################################################
-
-sub get_node_content
-{
- my ($nodeline) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::get_node_content : $nodeline"); }
-
- my $content = "";
-
- if ( $nodeline =~ /name\=\"(.*?)\"/ )
- {
- $content = $1;
- }
- else
- {
- installer::exiter::exit_program("ERROR: Impossible error in function get_node_content!",
"get_node_content");
- }
-
- return \$content;
-}
-
-##############################################################
-# Getting the line number of an existing node
-# Return "-1" if node does not exist
-##############################################################
-
-sub get_node_line_number
-{
- my ($nodecount, $oneconfig, $oneconfigfileref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::get_node_line_number : $nodecount :
$oneconfig->{'name'} : $#{$oneconfigfileref}"); }
-
- my $linenumber = -1; # the node does not exists, if returnvalue is "-1"
-
- # Attention: Take care of the two title nodes:
- # Path=org.openoffice.Office.Common/Menus/Wizard/*['m14']/Title
- # Path=org.openoffice.Office.Common/Menus/Wizard/*['m15']/Title
- # -> every subnode has to be identical
-
- # creating the allnodes string from $oneconfig
-
- my $allnodes = "";
-
- for ( my $i = 1; $i <= $nodecount; $i++ )
- {
- my $nodename = "node" . $i;
- $allnodes .= $oneconfig->{$nodename} . "/";
- }
-
- installer::remover::remove_leading_and_ending_slashes(\$allnodes); # exactly this string has
to be found in the following iteration
-
- # Iterating over the already built configuration file
-
- my @allnodes = ();
-
- for ( my $i = 0; $i <= $#{$oneconfigfileref}; $i++ )
- {
- my $line = ${$oneconfigfileref}[$i];
- installer::remover::remove_leading_and_ending_whitespaces(\$line);
- my $nodechanged = 0;
-
- if ( $line =~ /^\s*\<node/ ) # opening node
- {
- $nodechanged = 1;
- my $nodecontentref = get_node_content($line);
- push(@allnodes, $$nodecontentref); # collecting all nodes in an array
- }
-
- if ( $line =~ /^\s*\<\/node/ ) # ending node
- {
- $nodechanged = 1;
- pop(@allnodes); # removing the last node from the array
- }
-
- if (( $nodechanged ) && ($#allnodes > -1)) # a node was found and the node array is not
empty
- {
- # creating the string to compare with the string $allnodes
-
- my $nodestring = "";
-
- for ( my $j = 0; $j <= $#allnodes; $j++ )
- {
- $nodestring .= $allnodes[$j] . "/";
- }
-
- installer::remover::remove_leading_and_ending_slashes(\$nodestring);
-
- if ( $nodestring eq $allnodes )
- {
- # that is exactly the same node
-
- $linenumber = $i;
- $linenumber++; # increasing the linenumber
- last;
-
- }
- }
- }
-
- return $linenumber;
-}
-
-##############################################################
-# Inserting one configurationitem into the configurationfile
-##############################################################
-
-sub insert_into_config_file
-{
- my ($oneconfig, $oneconfigfileref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::insert_into_config_file :
$oneconfig->{'nodenumber'} : $#{$oneconfigfileref}"); }
-
- my ($nodename, $nodecontent, $newnodeline, $bracketkey, $line, $insertline);
-
- # interpreting the nodes, keys and values
-
- my $nodeline = '<node oor:name="NODECONTENT" REPLACEPART >' . "\n";
- my $propline = '<prop oor:name="KEYCONTENT" REPLACEPART TYPEPART>' . "\n";
- my $valueline = '<value SEPARATORPART>VALUECONTENT</value>' . "\n";
- my $langvalueline = '<value xml:lang="SAVEDLANGUAGE">VALUECONTENT</value>' . "\n";
- my $propendline = '</prop>' . "\n";
- my $nodeendline = '</node>' . "\n";
-
- my $replacepart = 'oor:op="replace"';
- my $typepart = 'oor:type="xs:VALUETYPE"'; # VALUETYPE can be "string", "boolean", ...
-
- my $nodecount = $oneconfig->{'nodenumber'};
- my $styles = $oneconfig->{'Styles'};
-
- for ( my $i = 1; $i <= $nodecount; $i++ )
- {
- $insertline = get_node_line_number($i, $oneconfig, $oneconfigfileref);
-
- if ( $insertline == -1) # if true, the node does not exist
- {
- $nodename = "node" . $i;
- $nodecontent = $oneconfig->{$nodename};
- $newnodeline = $nodeline;
-
- $newnodeline =~ s/NODECONTENT/$nodecontent/g;
-
- # Case1:
- # Nodes with brackets, need the replacepart 'oor:op="replace"'
- # Bracket node is set for each node with: bracket_node1=1, bracket_node2=1, ...
- # Case a: <node oor:name="m0" oor:op="replace"> (Common.xcu needs oor:op="replace")
- # Case b: <node oor:name="Ami Pro 1.x-3.1 (W4W)"> (TypeDetection.xcu does not need
oor:op="replace")
- # For case b introducting a special case for Filters
-
- $bracketkey = "bracket_" . $nodename;
-
- my $localbracketkey = 0;
-
- if ( $oneconfig->{$bracketkey} ) { $localbracketkey = $oneconfig->{$bracketkey}; }
-
- if ( $localbracketkey == 1 ) # 'oor:op="replace"' is needed
- {
- my $isfilter = 0;
- if ( $oneconfig->{'isfilter'} ) { $isfilter = $oneconfig->{'isfilter'}; }
-
- if ( $isfilter == 1 ) # this is a filter
- {
- $newnodeline =~ s/REPLACEPART//;
- }
- else
- {
- $newnodeline =~ s/REPLACEPART/$replacepart/;
- }
-
- $newnodeline =~ s/\s*\>/\>/; # removing resulting whitespaces
- }
-
- # Case2:
- # Nodes below a Node "Factories", also need the replacepart 'oor:op="replace"'
- # This is saved in $oneconfig->{'factoriesnode'}. If not set, the value is "-99"
-
- if ( $i == $oneconfig->{'factoriesnode'} )
- {
- $newnodeline =~ s/REPLACEPART/$replacepart/;
- $newnodeline =~ s/\s*\>/\>/; # removing resulting whitespaces
- }
-
- # Case3:
- # In all other cases, REPLACEPART in nodes can be removed
-
- $newnodeline =~ s/REPLACEPART//;
- $newnodeline =~ s/\s*\>/\>/; # removing resulting whitespaces
-
- # Finding the correct place for inserting the node
-
- if ( $i == 1 ) # this is a toplevel node
- {
- push(@{$oneconfigfileref}, $newnodeline);
- push(@{$oneconfigfileref}, $nodeendline);
- }
- else
- {
- # searching for the parent node
-
- my $parentnumber = $i-1;
- $insertline = get_node_line_number($parentnumber, $oneconfig, $oneconfigfileref);
- splice(@{$oneconfigfileref}, $insertline, 0, ($newnodeline, $nodeendline));
- }
- }
- }
-
- # Setting variables $isbracketnode and $isfactorynode for the properties
-
-
- my $isbracketnode = 0;
- my $isfactorynode = 0;
-
- for ( my $i = 1; $i <= $nodecount; $i++ )
- {
- $nodename = "node" . $i;
- $bracketkey = "bracket_" . $nodename;
-
- my $localbracketkey = 0;
- if ( $oneconfig->{$bracketkey} ) { $localbracketkey = $oneconfig->{$bracketkey}; }
-
- if ( $localbracketkey == 1 ) { $isbracketnode = 1; }
- if ( $i == $oneconfig->{'factoriesnode'} ) { $isfactorynode = 1; }
- }
-
- # now all nodes exist, and the key and value can be inserted into the configfile
- # the next line contains the key, for instance: <prop oor:name="UseDefaultMailer"
oor:type="xs:boolean">
- # my $propline = '<prop oor:name="KEYCONTENT" REPLACEPART TYPEPART>' . "\n";
- # The type is only needed, if a replace is set.
-
- my $newpropline = $propline;
-
- # Replacement of KEYCONTENT, REPLACEPART and TYPEPART
-
- # Case 1:
- # Properties with oor:name="Name" (Common.xcu) are simply <prop oor:name="Name">
- # The information about such a property is stored in $oneconfig->{'isisocode'}
-
- if ( $oneconfig->{'isisocode'} )
- {
- if ( $oneconfig->{'isname'} ) { $newpropline =~ s/KEYCONTENT/Name/; } # The property
name is always "Name"
- if ( $oneconfig->{'istitle'} ) { $newpropline =~ s/KEYCONTENT/Title/; } # The property
name is always "Title"
- $newpropline =~ s/REPLACEPART//;
- $newpropline =~ s/TYPEPART//;
- $newpropline =~ s/\s*\>/\>/; # removing resulting whitespaces
- }
-
- # Begin of all other cases
-
- my $key = $oneconfig->{'Key'};
- $newpropline =~ s/KEYCONTENT/$key/;
-
- my $valuetype;
-
- if ( $styles =~ /CFG_STRING\b/ ) { $valuetype = "string"; }
- elsif ( $styles =~ /CFG_NUMERIC/ ) { $valuetype = "int"; }
- elsif ( $styles =~ /CFG_BOOLEAN/ ) { $valuetype = "boolean"; }
- elsif ( $styles =~ /CFG_STRINGLIST/ ) { $valuetype = "string-list"; }
- else
- {
- installer::exiter::exit_program("ERROR: Unknown configuration value type: $styles",
"insert_into_config_file");
- }
-
- # Case 2:
- # Properties below a node "Factories" do not need a 'oor:op="replace"' and a
'oor:type="xs:VALUETYPE"'
-
- if ( $isfactorynode )
- {
- $newpropline =~ s/REPLACEPART//;
- $newpropline =~ s/TYPEPART//;
- $newpropline =~ s/\s*\>/\>/; # removing resulting whitespaces
- }
-
- # Case 3:
- # Properties below a "bracket" node do not need a 'oor:op="replace"', except they are iso-codes
- # Assumption here: They are multilingual
-
- if ( $isbracketnode )
- {
- my $localtypepart = $typepart;
- $localtypepart =~ s/VALUETYPE/$valuetype/;
- $newpropline =~ s/TYPEPART/$localtypepart/;
-
- if ( $oneconfig->{'ismultilingual'} ) # This is solved by "Name" and "Title"
- {
- $newpropline =~ s/REPLACEPART/$replacepart/;
- }
- else
- {
- $newpropline =~ s/REPLACEPART//;
- }
-
- $newpropline =~ s/\s*\>/\>/; # removing resulting whitespaces
- }
-
- # Case 4:
- # if the flag CREATE is set, the properties get 'oor:op="replace"' and
'oor:type="xs:VALUETYPE"'
-
- if (( $styles =~ /\bCREATE\b/ ) && (!($isbracketnode)))
- {
- # $typepart is 'oor:type="xs:VALUETYPE"';
- # VALUETYPE can be "string", "boolean", ...
- my $localtypepart = $typepart;
- $localtypepart =~ s/VALUETYPE/$valuetype/;
-
- $newpropline =~ s/TYPEPART/$localtypepart/;
- $newpropline =~ s/REPLACEPART/$replacepart/;
- $newpropline =~ s/\s*\>/\>/; # removing resulting whitespaces
- }
-
- # Case 5:
- # all other ConfigurationItems do not need 'oor:op="replace"' and 'oor:type="xs:VALUETYPE"'
-
- $newpropline =~ s/REPLACEPART//;
- $newpropline =~ s/TYPEPART//;
- $newpropline =~ s/\s*\>/\>/; # removing resulting whitespaces
-
- # finally the value can be set
-
- my $value = $oneconfig->{'Value'};
-
- # Some values in setup script are written during installation process by the setup. These
- # have values like "<title>". This will lead to an error, because of the brackets. Therefore
the
- # brackets have to be removed.
-
- # ToDo: Substituting the setup replace variables
-
- $value =~ s/^\s*\<//;
- $value =~ s/\>\s*$//;
-
- # Deal with list separators
- my $separatorpart = '';
- if ( ($valuetype eq "string-list") && ($value =~ /\|/) )
- {
- $separatorpart = 'oor:separator="|"';
- }
-
- # Fake: substituting german umlauts
-
- $value =~ s/\ä/ae/;
- $value =~ s/\ö/oe/;
- $value =~ s/\ü/ue/;
- $value =~ s/\Ä/AE/;
- $value =~ s/\Ö/OE/;
- $value =~ s/\Ü/UE/;
-
- my $newvalueline;
-
- if (!($oneconfig->{'isisocode'} )) # this is the simpe case
- {
- $newvalueline = $valueline;
- $newvalueline =~ s/VALUECONTENT/$value/g;
- $newvalueline =~ s/SEPARATORPART/$separatorpart/;
- }
- else
- {
- $newvalueline = $langvalueline;
- $newvalueline =~ s/VALUECONTENT/$value/;
- my $savedlanguage = $oneconfig->{'Key'};
- $newvalueline =~ s/SAVEDLANGUAGE/$savedlanguage/;
- }
-
- # For language dependent values, it is possible, that the property already exist.
- # In this case the prop must not be created again and only the value has to be included:
- # <prop oor:name="Name">
- # <value xml:lang="de">OpenOffice.org 2.0 Diagramm</value>
- # <value xml:lang="en-US">OpenOffice.org 2.0 Chart</value>
- # </prop>
-
- # The key has to be written after the line, containing the complete node
-
- $insertline = get_node_line_number($nodecount, $oneconfig, $oneconfigfileref);
-
- if ( $oneconfig->{'ismultilingual'} )
- {
- if ( $newpropline eq ${$oneconfigfileref}[$insertline] )
- {
- if (!($newvalueline eq ${$oneconfigfileref}[$insertline+1])) # only include, if the
value not already exists (example: value="FALSE" for many languages)
- {
- splice(@{$oneconfigfileref}, $insertline+1, 0, ($newvalueline)); # only the
value needs to be added
- }
- }
- else
- {
- splice(@{$oneconfigfileref}, $insertline, 0, ($newpropline, $newvalueline,
$propendline));
- }
- }
- else
- {
- splice(@{$oneconfigfileref}, $insertline, 0, ($newpropline, $newvalueline, $propendline));
- }
-
- return $oneconfigfileref;
-}
-
-##########################################################
-# Inserting tabs for better view into configuration file
-##########################################################
-
-sub insert_tabs_into_configfile
-{
- my ($configfileref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::insert_tabs_into_configfile :
$#{$configfileref}"); }
-
- my $counter = 0;
-
- for ( my $i = 0; $i <= $#{$configfileref}; $i++ )
- {
- my $line = ${$configfileref}[$i];
- my $linebefore = ${$configfileref}[$i-1];
-
- if (( $line =~ /^\s*\<node/ ) || ( $line =~ /^\s*\<prop/ ))
- {
- if ((!( $linebefore =~ /^\s*\<\/node/ )) && (!( $linebefore =~ /^\s*\<\/prop/ )))
# do not increase after "</node" and after "</prop"
- {
- $counter++;
- }
- }
-
- if ( $line =~ /^\s*\<value/ )
- {
- if (!($linebefore =~ /^\s*\<value/ )) # do not increase counter with "<value>"
after "<value>" (multilingual configitems)
- {
- $counter++;
- }
- }
-
- if (( $line =~ /^\s*\<\/node\>/ ) || ( $line =~ /^\s*\<\/prop\>/ ))
- {
- if ((!( $linebefore =~ /^\s*\<node/ )) && (!( $linebefore =~ /^\s*\<prop/ ))) #
do not decrease after "<node" and after "<prop"
- {
- $counter--;
- }
- }
-
- if ($counter > 0)
- {
- for ( my $j = 0; $j < $counter; $j++ )
- {
- $line = "\t" . $line;
- }
- }
-
- ${$configfileref}[$i] = $line;
- }
-}
-
-######################################################################
-# Collecting all different configuration items (Files and Modules)
-######################################################################
-
-sub collect_all_configuration_items
-{
- my ($configurationitemsref, $item) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::collect_all_configuration_items :
$#{$configurationitemsref} : $item"); }
-
- my @allitems = ();
-
- for ( my $i = 0; $i <= $#{$configurationitemsref}; $i++ )
- {
- my $oneconfig = ${$configurationitemsref}[$i];
-
- if (! installer::existence::exists_in_array($oneconfig->{$item}, \@allitems))
- {
- push(@allitems, $oneconfig->{$item});
- }
- }
-
- return \@allitems;
-}
-
-######################################################################
-# Collecting all module specific configuration items
-######################################################################
-
-sub get_all_configitems_at_module
-{
- my ($moduleid, $configurationitemsref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::get_all_configitems_at_module : $moduleid :
$#{$configurationitemsref}"); }
-
- my @moduleconfigurationitems = ();
-
- for ( my $i = 0; $i <= $#{$configurationitemsref}; $i++ )
- {
- my $oneconfig = ${$configurationitemsref}[$i];
-
- if ( $oneconfig->{'ModuleID'} eq $moduleid )
- {
- push(@moduleconfigurationitems, $oneconfig);
- }
- }
-
- return \@moduleconfigurationitems;
-}
-
-#######################################################
-# Saving and zipping the created configurationfile
-#######################################################
-
-sub save_and_zip_configfile
-{
- my ($oneconfigfileref, $onefile, $onemodule, $configdir) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::save_and_zip_configfile :
$#{$oneconfigfileref} : $onefile : $onemodule : $configdir"); }
-
- my $savefilename = $onefile;
- $savefilename =~ s/\./\_/g;
- $savefilename = $savefilename . "_" . $onemodule;
- $savefilename = $savefilename . ".xcu";
- my $shortsavefilename = $savefilename;
-
- $savefilename = $configdir . $installer::globals::separator . $savefilename;
-
- installer::files::save_file($savefilename, $oneconfigfileref);
-
- # zipping the configfile
-
- my $returnvalue = 1;
-
- my $zipfilename = $shortsavefilename;
- $zipfilename =~ s/\.xcu/\.zip/;
-
- my $currentdir = cwd();
- if ( $installer::globals::iswin ) { $currentdir =~ s/\//\\/g; }
-
- chdir($configdir);
-
- my $systemcall = "$installer::globals::zippath -q -m $zipfilename $shortsavefilename";
- $returnvalue = system($systemcall);
-
- chdir($currentdir);
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- if ($returnvalue)
- {
- $infoline = "ERROR: Could not zip $savefilename to $zipfilename\n";
- }
- else
- {
- $infoline = "SUCCESS: Zipped file $savefilename to $zipfilename\n";
- }
- push( @installer::globals::logfileinfo, $infoline);
-
- return $zipfilename;
-}
-
-#####################################################################
-# Adding the newly created configuration file into the file list
-#####################################################################
-
-sub add_zipfile_into_filelist
-{
- my ($zipfilename, $configdir, $filesarrayref, $onemodule) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::add_zipfile_into_filelist: $zipfilename :
$configdir : $#{$filesarrayref} : $onemodule"); }
-
- my $longzipfilename = $configdir . $installer::globals::separator . $zipfilename;
- my $gid = "gid_" . $zipfilename;
- $gid =~ s/\./\_/g;
-
- my %configfile = ();
-
- # Taking the base data from the "gid_File_Lib_Vcl"
-
- my $vclgid = "gid_File_Lib_Vcl";
- my $vclfile = installer::existence::get_specified_file($filesarrayref, $vclgid);
-
- # copying all base data
- installer::converter::copy_item_object($vclfile, \%configfile);
-
- # and overriding all new data
- $configfile{'ismultilingual'} = 0;
- $configfile{'sourcepath'} = $longzipfilename;
- $configfile{'Name'} = $zipfilename;
- $configfile{'UnixRights'} = "644";
- $configfile{'gid'} = $gid;
- $configfile{'Dir'} = "gid_Dir_Share_Uno_Packages";
- $configfile{'destination'} = "share" . $installer::globals::separator . "uno_packages" .
$installer::globals::separator . $zipfilename;
- $configfile{'modules'} = $onemodule; # assigning the file to the correct module!
-
- push(@{$filesarrayref}, \%configfile);
-}
-
-#######################################################
-# Creating configuration files from configurationitems
-#######################################################
-
-sub create_configuration_files
-{
- my ($configurationitemsref, $filesarrayref, $languagestringref) = @_;
-
- if ( $installer::globals::debug ) {
installer::logger::debuginfo("installer::configuration::create_configuration_files:
$#{$configurationitemsref} : $#{$filesarrayref} : $$languagestringref"); }
-
- installer::logger::include_header_into_logfile("Creating configuration files:");
-
- # creating the directory
-
- my $configdir = installer::systemactions::create_directories("configfiles",
$languagestringref);
-
- $configdir = installer::converter::make_path_conform($configdir);
-
- # collecting an array of all modules
- my $allmodules = collect_all_configuration_items($configurationitemsref, "ModuleID");
-
- # iterating over all modules
-
- for ( my $i = 0; $i <= $#{$allmodules}; $i++ )
- {
- my $onemodule = ${$allmodules}[$i];
-
- my $moduleconfigitems = get_all_configitems_at_module($onemodule, $configurationitemsref);
-
- # collecting an array of all "startpath". This are all different files
(org.openoffice.Office.Common).
- my $allfiles = collect_all_configuration_items($moduleconfigitems, "startpath");
-
- # iteration over all files
-
- for ( my $j = 0; $j <= $#{$allfiles}; $j++ )
- {
- my $onefile = ${$allfiles}[$j];
-
- my @oneconfigfile = ();
- my $oneconfigfileref = \@oneconfigfile;
-
- my $startblockwritten = 0;
-
- for ( my $k = 0; $k <= $#{$moduleconfigitems}; $k++ )
- {
- my $oneconfig = ${$moduleconfigitems}[$k];
-
- my $startpath = $oneconfig->{'startpath'};
-
- if ($startpath eq $onefile)
- {
- if (!($startblockwritten)) # writing some global lines into the xcu file
- {
- insert_start_block_into_configfile($oneconfigfileref, $oneconfig);
- $startblockwritten = 1;
- }
-
- $oneconfigfileref = insert_into_config_file($oneconfig, $oneconfigfileref);
- }
- }
-
- insert_end_block_into_configfile($oneconfigfileref);
-
- # inserting tabs for nice appearance
- insert_tabs_into_configfile($oneconfigfileref);
-
- # saving the configfile
- my $zipfilename = save_and_zip_configfile($oneconfigfileref, $onefile, $onemodule,
$configdir);
-
- # adding the zipped configfile to the list of installed files
- # Some data are set now, others are taken from the file "soffice.exe" ("soffice.bin")
-
- add_zipfile_into_filelist($zipfilename, $configdir, $filesarrayref, $onemodule);
- }
- }
-
- my $infoline = "\n";
- push( @installer::globals::logfileinfo, $infoline);
-
-}
-
-1;
--
1.7.4.1
Context
- [Libreoffice] [PATCH] Remove an unused perl module · Jordan Ayers
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.