xref: /AOO41X/main/solenv/bin/modules/installer/existence.pm (revision 9780544fa6b4c85f7d9b48452f58c7da854fc9a5)
1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23
24package installer::existence;
25
26#############################
27# Test of existence
28#############################
29
30sub exists_in_array
31{
32    my ($searchstring, $arrayref) = @_;
33
34    my $alreadyexists = 0;
35
36    for ( my $i = 0; $i <= $#{$arrayref}; $i++ )
37    {
38        if ( ${$arrayref}[$i] eq $searchstring)
39        {
40            $alreadyexists = 1;
41            last;
42        }
43    }
44
45    return $alreadyexists;
46}
47
48sub exists_in_array_of_hashes
49{
50    my ($searchkey, $searchvalue, $arrayref) = @_;
51
52    my $valueexists = 0;
53
54    for ( my $i = 0; $i <= $#{$arrayref}; $i++ )
55    {
56        my $hashref = ${$arrayref}[$i];
57
58        if ( $hashref->{$searchkey} eq $searchvalue )
59        {
60            $valueexists = 1;
61            last;
62        }
63    }
64
65    return $valueexists;
66}
67
68#####################################################################
69# Returning a specified file as base for the new
70# configuration file, defined by its "gid"
71#####################################################################
72
73sub get_specified_file
74{
75    my ($filesarrayref, $searchgid) = @_;
76
77    my $foundfile = 0;
78    my $onefile;
79
80    for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
81    {
82        $onefile = ${$filesarrayref}[$i];
83        my $filegid = $onefile->{'gid'};
84
85        if ( $filegid eq $searchgid )
86        {
87            $foundfile = 1;
88            last;
89        }
90    }
91
92    my $errorline = "ERROR: Could not find file $searchgid in list of files!";
93
94    if ( $installer::globals::patch) { $errorline = "ERROR: Could not find file $searchgid in list of files! intro.bmp must be part of every patch. Please assign the flag PATCH in scp2 project."; }
95
96    if (!($foundfile))
97    {
98        installer::exiter::exit_program($errorline, "get_specified_file");
99    }
100
101    return $onefile;
102}
103
104#####################################################################
105# Returning a specified file as base for a new file,
106# defined by its "Name"
107#####################################################################
108
109sub get_specified_file_by_name
110{
111    my ($filesarrayref, $searchname) = @_;
112
113    my $foundfile = 0;
114    my $onefile;
115
116    for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
117    {
118        $onefile = ${$filesarrayref}[$i];
119        my $filename = $onefile->{'Name'};
120
121        if ( $filename eq $searchname )
122        {
123            $foundfile = 1;
124            last;
125        }
126    }
127
128    if (!($foundfile))
129    {
130        installer::exiter::exit_program("ERROR: Could not find file $searchname in list of files!", "get_specified_file_by_name");
131    }
132
133    return $onefile;
134}
135
136#####################################################################
137# Checking existence of a specific file, defined by its "Name"
138#####################################################################
139
140sub filename_exists_in_filesarray
141{
142    my ($filesarrayref, $searchname) = @_;
143
144    my $foundfile = 0;
145
146    for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
147    {
148        my $onefile = ${$filesarrayref}[$i];
149        my $filename = $onefile->{'Name'};
150
151        if ( $filename eq $searchname )
152        {
153            $foundfile = 1;
154            last;
155        }
156    }
157
158    return $foundfile;
159}
160
161#####################################################################
162# Checking existence of a specific file, defined by its "gid"
163#####################################################################
164
165sub filegid_exists_in_filesarray
166{
167    my ($filesarrayref, $searchgid) = @_;
168
169    my $foundfile = 0;
170
171    for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
172    {
173        my $onefile = ${$filesarrayref}[$i];
174        my $filegid = $onefile->{'gid'};
175
176        if ( $filegid eq $searchgid )
177        {
178            $foundfile = 1;
179            last;
180        }
181    }
182
183    return $foundfile;
184}
185
1861;
187