diff options
Diffstat (limited to 'solenv/bin/modules/par2script/undefine.pm')
-rw-r--r-- | solenv/bin/modules/par2script/undefine.pm | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/solenv/bin/modules/par2script/undefine.pm b/solenv/bin/modules/par2script/undefine.pm deleted file mode 100644 index 3ffc76709..000000000 --- a/solenv/bin/modules/par2script/undefine.pm +++ /dev/null @@ -1,144 +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 par2script::undefine; - -use par2script::globals; - -########################################################## -# Removing in the script all the gids, that are listed -# in undefine scp files -########################################################## - -sub undefine_gids -{ - my ($parfilecontent) = @_; - - my $item; - foreach $item ( @par2script::globals::allitems ) - { - my $unitem = "Un$item"; - - for ( my $i = 0; $i <= $#{$parfilecontent}; $i++ ) - { - if ( ${$parfilecontent}[$i] =~ /^\s*$unitem\s*(\w+?)\s*$/ ) - { - my $gid = $1; - delete($par2script::globals::definitions{$item}->{$gid}); - } - } - } -} - -########################################################## -# Collecting all subdirectories of a specified directory -########################################################## - -sub collect_children_dirs -{ - my ($gid, $collector) = @_; - - my $diritem = "Directory"; - my $parentkey = "ParentID"; - - if ( exists($par2script::globals::definitions{$diritem}) ) - { - my $onedefinition; - - foreach $onedefinition (keys %{$par2script::globals::definitions{$diritem}}) - { - if ( $par2script::globals::definitions{$diritem}->{$onedefinition}->{$parentkey} eq $gid ) - { - push(@{$collector}, $onedefinition); - collect_children_dirs($onedefinition, $collector); - } - } - } -} - -########################################################## -# Removing in the script complete profiles. -# This includes the Profile and its ProfileItems. -########################################################## - -sub remove_complete_item -{ - my ($item, $parfilecontent) = @_; - - my $removeitem = "Remove$item"; - my $dependentkey = ""; - my $collect_children = 0; - my @gidcollector = (); - my @dependentitems = (); - - if ( $item eq "Profile" ) - { - @dependentitems = ("ProfileItem"); - $dependentkey = "ProfileID"; - } - elsif ( $item eq "Directory" ) - { - @dependentitems = ("File", "Shortcut", "Unixlink"); - $dependentkey = "Dir"; - $collect_children = 1; - } - - for ( my $i = 0; $i <= $#{$parfilecontent}; $i++ ) - { - if ( ${$parfilecontent}[$i] =~ /^\s*$removeitem\s*(\w+?)\s*$/ ) - { - my $onegid = $1; - push(@gidcollector, $onegid); - if ( $collect_children ) { collect_children_dirs($onegid, \@gidcollector); } - - my $gid; - foreach $gid (@gidcollector) - { - delete($par2script::globals::definitions{$item}->{$gid}); - - # also deleting all dependent items, for example "ProfileItems" whose "ProfileID" is this "Profile" - my $depitem; - foreach $depitem ( @dependentitems ) - { - if ( exists($par2script::globals::definitions{$depitem}) ) - { - my $onedefinition; - foreach $onedefinition (keys %{$par2script::globals::definitions{$depitem}}) - { - if ( $par2script::globals::definitions{$depitem}->{$onedefinition}->{$dependentkey} eq $gid ) - { - delete($par2script::globals::definitions{$depitem}->{$onedefinition}); - } - } - } - } - } - } - } -} - -1; |