1*b1cdbd2cSJim Jagielski#************************************************************** 2*b1cdbd2cSJim Jagielski# 3*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski# distributed with this work for additional information 6*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski# 11*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski# 13*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski# under the License. 19*b1cdbd2cSJim Jagielski# 20*b1cdbd2cSJim Jagielski#************************************************************** 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski#************************************************************************* 25*b1cdbd2cSJim Jagielski# 26*b1cdbd2cSJim Jagielski# SourceConfigHelper - Perl extension for parsing general info databases 27*b1cdbd2cSJim Jagielski# 28*b1cdbd2cSJim Jagielski# usage: see below 29*b1cdbd2cSJim Jagielski# 30*b1cdbd2cSJim Jagielski#************************************************************************* 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielskipackage SourceConfigHelper; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielskiuse strict; 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielskiuse RepositoryHelper; 37*b1cdbd2cSJim Jagielskiuse SourceConfig; 38*b1cdbd2cSJim Jagielskiuse Cwd qw (cwd); 39*b1cdbd2cSJim Jagielskiuse Carp; 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielskimy $debug = 0; 42*b1cdbd2cSJim Jagielskimy @source_config_list; # array of sourceconfig objects 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski#----------------------------------------------------------------------- 45*b1cdbd2cSJim Jagielski# Constants 46*b1cdbd2cSJim Jagielski#----------------------------------------------------------------------- 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielskiuse constant SOURCE_CONFIG_NONE => 0; 49*b1cdbd2cSJim Jagielskiuse constant SOURCE_CONFIG_CURRENT_FIRST => 1; 50*b1cdbd2cSJim Jagielskiuse constant SOURCE_CONFIG_ENVIRONMENT_FIRST => 2; 51*b1cdbd2cSJim Jagielskiuse constant SOURCE_CONFIG_CURRENT_ONLY => 3; 52*b1cdbd2cSJim Jagielskiuse constant SOURCE_CONFIG_ENVIRONMENT_ONLY => 4; 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielskiuse constant SOURCE_CONFIG_DEFAULT => SOURCE_CONFIG_CURRENT_FIRST; 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski##### profiling ##### 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski##### ctor ##### 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielskisub new { 61*b1cdbd2cSJim Jagielski my $proto = shift; 62*b1cdbd2cSJim Jagielski my $class = ref($proto) || $proto; 63*b1cdbd2cSJim Jagielski my $init_action = shift; 64*b1cdbd2cSJim Jagielski my $self = {}; 65*b1cdbd2cSJim Jagielski my $SourceConfigCurrent; 66*b1cdbd2cSJim Jagielski my $SourceConfigEnvironment; 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski $init_action = SOURCE_CONFIG_DEFAULT if (!defined ($init_action)); 69*b1cdbd2cSJim Jagielski if (!eval ($init_action) or ($init_action < SOURCE_CONFIG_NONE) or ($init_action > SOURCE_CONFIG_ENVIRONMENT_ONLY)) { 70*b1cdbd2cSJim Jagielski croak("wrong initial parameter: $init_action\n"); 71*b1cdbd2cSJim Jagielski } 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski if ($init_action != SOURCE_CONFIG_NONE) { 74*b1cdbd2cSJim Jagielski my $repositoryHash_ref = {}; 75*b1cdbd2cSJim Jagielski if ($init_action != SOURCE_CONFIG_ENVIRONMENT_ONLY) { 76*b1cdbd2cSJim Jagielski my $initial_directory = cwd(); 77*b1cdbd2cSJim Jagielski my $result = is_repository($initial_directory, $repositoryHash_ref); 78*b1cdbd2cSJim Jagielski if ($result) { 79*b1cdbd2cSJim Jagielski $SourceConfigCurrent = SourceConfig->new($repositoryHash_ref->{REPOSITORY_ROOT}); 80*b1cdbd2cSJim Jagielski } 81*b1cdbd2cSJim Jagielski } 82*b1cdbd2cSJim Jagielski if ($init_action != SOURCE_CONFIG_CURRENT_ONLY) { 83*b1cdbd2cSJim Jagielski my $source_config = $ENV{SOURCE_ROOT_DIR} . '/' . SourceConfig::SOURCE_CONFIG_FILE_NAME; 84*b1cdbd2cSJim Jagielski if (-f $source_config) { 85*b1cdbd2cSJim Jagielski $SourceConfigEnvironment = SourceConfig->new($source_config); 86*b1cdbd2cSJim Jagielski } 87*b1cdbd2cSJim Jagielski } 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski # fill array 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski if (($init_action == SOURCE_CONFIG_CURRENT_FIRST) or ($init_action == SOURCE_CONFIG_CURRENT_ONLY)) { 92*b1cdbd2cSJim Jagielski if (defined ($SourceConfigCurrent)) { 93*b1cdbd2cSJim Jagielski push (@source_config_list, $SourceConfigCurrent); 94*b1cdbd2cSJim Jagielski } 95*b1cdbd2cSJim Jagielski if ($init_action == SOURCE_CONFIG_CURRENT_FIRST) { 96*b1cdbd2cSJim Jagielski if (defined ($SourceConfigEnvironment)) { 97*b1cdbd2cSJim Jagielski push (@source_config_list, $SourceConfigEnvironment); 98*b1cdbd2cSJim Jagielski } 99*b1cdbd2cSJim Jagielski } 100*b1cdbd2cSJim Jagielski } 101*b1cdbd2cSJim Jagielski elsif (($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) or ($init_action == SOURCE_CONFIG_ENVIRONMENT_ONLY)) { 102*b1cdbd2cSJim Jagielski if (defined ($SourceConfigEnvironment)) { 103*b1cdbd2cSJim Jagielski push (@source_config_list, $SourceConfigEnvironment); 104*b1cdbd2cSJim Jagielski } 105*b1cdbd2cSJim Jagielski if ($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) { 106*b1cdbd2cSJim Jagielski if (defined ($SourceConfigCurrent)) { 107*b1cdbd2cSJim Jagielski push (@source_config_list, $SourceConfigCurrent); 108*b1cdbd2cSJim Jagielski } 109*b1cdbd2cSJim Jagielski } 110*b1cdbd2cSJim Jagielski } 111*b1cdbd2cSJim Jagielski } 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski $self->{SOURCE_CONFIG_LIST} = \@source_config_list; 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski bless($self, $class); 116*b1cdbd2cSJim Jagielski return $self; 117*b1cdbd2cSJim Jagielski} 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski##### methods ##### 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski############################################################################################ 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielskisub add_SourceConfig { 124*b1cdbd2cSJim Jagielski my $self = shift; 125*b1cdbd2cSJim Jagielski my $source_config = shift; 126*b1cdbd2cSJim Jagielski push (@{$self->{SOURCE_CONFIG_LIST}}, $source_config); 127*b1cdbd2cSJim Jagielski} 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski############################################################################################ 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielskisub get_SourceConfigList { 132*b1cdbd2cSJim Jagielski my $self = shift; 133*b1cdbd2cSJim Jagielski return @{$self->{SOURCE_CONFIG_LIST}}; 134*b1cdbd2cSJim Jagielski} 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski############################################################################################ 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielskisub has_SourceConfig { 139*b1cdbd2cSJim Jagielski my $self = shift; 140*b1cdbd2cSJim Jagielski my $result = 0; 141*b1cdbd2cSJim Jagielski my $count = @{$self->{SOURCE_CONFIG_LIST}}; 142*b1cdbd2cSJim Jagielski $result = 1 if ($count > 0); 143*b1cdbd2cSJim Jagielski return $result; 144*b1cdbd2cSJim Jagielski} 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski############################################################################################ 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielskisub get_module_path { 149*b1cdbd2cSJim Jagielski my $self = shift; 150*b1cdbd2cSJim Jagielski my $module = shift; 151*b1cdbd2cSJim Jagielski my $function = \&SourceConfig::get_module_path; 152*b1cdbd2cSJim Jagielski my $result; 153*b1cdbd2cSJim Jagielski $result = $self->get_StringResult ($function, $module); 154*b1cdbd2cSJim Jagielski return $result; 155*b1cdbd2cSJim Jagielski} 156*b1cdbd2cSJim Jagielski 157*b1cdbd2cSJim Jagielski############################################################################################ 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielskisub get_active_modules { 160*b1cdbd2cSJim Jagielski my $self = shift; 161*b1cdbd2cSJim Jagielski my $parameter; # empty 162*b1cdbd2cSJim Jagielski my $function = \&SourceConfig::get_active_modules; 163*b1cdbd2cSJim Jagielski my $array_ref; 164*b1cdbd2cSJim Jagielski $array_ref = $self->get_ArrayResult ($function, $parameter); 165*b1cdbd2cSJim Jagielski return @$array_ref; 166*b1cdbd2cSJim Jagielski} 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski############################################################################################ 169*b1cdbd2cSJim Jagielski 170*b1cdbd2cSJim Jagielskisub get_repositories { 171*b1cdbd2cSJim Jagielski my $self = shift; 172*b1cdbd2cSJim Jagielski my $parameter; # empty 173*b1cdbd2cSJim Jagielski my $function = \&SourceConfig::get_repositories; 174*b1cdbd2cSJim Jagielski my $array_ref; 175*b1cdbd2cSJim Jagielski $array_ref = $self->get_ArrayResult ($function, $parameter); 176*b1cdbd2cSJim Jagielski return @$array_ref; 177*b1cdbd2cSJim Jagielski} 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski############################################################################################ 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielskisub get_module_repository { 182*b1cdbd2cSJim Jagielski my $self = shift; 183*b1cdbd2cSJim Jagielski my $module = shift; 184*b1cdbd2cSJim Jagielski my $function = \&SourceConfig::get_module_repository; 185*b1cdbd2cSJim Jagielski my $result; 186*b1cdbd2cSJim Jagielski $result = $self->get_StringResult ($function, $module); 187*b1cdbd2cSJim Jagielski return $result; 188*b1cdbd2cSJim Jagielski} 189*b1cdbd2cSJim Jagielski 190*b1cdbd2cSJim Jagielski############################################################################################ 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielskisub is_active { 193*b1cdbd2cSJim Jagielski my $self = shift; 194*b1cdbd2cSJim Jagielski my $module = shift; 195*b1cdbd2cSJim Jagielski my $function = \&SourceConfig::is_active; 196*b1cdbd2cSJim Jagielski my $result_ref; 197*b1cdbd2cSJim Jagielski my $is_active = 0; 198*b1cdbd2cSJim Jagielski $result_ref = $self->get_ResultOfList ($function, $module); 199*b1cdbd2cSJim Jagielski my $count = @$result_ref; 200*b1cdbd2cSJim Jagielski if ($count>0) { 201*b1cdbd2cSJim Jagielski foreach my $active (@$result_ref) { 202*b1cdbd2cSJim Jagielski if ($active) { 203*b1cdbd2cSJim Jagielski $is_active = $active; 204*b1cdbd2cSJim Jagielski } 205*b1cdbd2cSJim Jagielski } 206*b1cdbd2cSJim Jagielski } 207*b1cdbd2cSJim Jagielski return $is_active; 208*b1cdbd2cSJim Jagielski} 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski##### private methods ##### 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski############################################################################################ 213*b1cdbd2cSJim Jagielski# 214*b1cdbd2cSJim Jagielski# is_repository () : check if the directory is a valid repository 215*b1cdbd2cSJim Jagielski# 216*b1cdbd2cSJim Jagielski# input: - directory 217*b1cdbd2cSJim Jagielski# - hash reference, where the output will be stored 218*b1cdbd2cSJim Jagielski# 219*b1cdbd2cSJim Jagielski# output: 0 = FALSE, the directory is no valid repository 220*b1cdbd2cSJim Jagielski# 1 = TRUE, the repository root can be found in $repositoryHash_ref->{REPOSITORY_ROOT} 221*b1cdbd2cSJim Jagielski# 222*b1cdbd2cSJim Jagielski############################################################################################ 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielskisub is_repository { 225*b1cdbd2cSJim Jagielski my $directory = shift; 226*b1cdbd2cSJim Jagielski my $repositoryHash_ref = shift; 227*b1cdbd2cSJim Jagielski $repositoryHash_ref->{INITIAL_DIRECTORY} = $directory; 228*b1cdbd2cSJim Jagielski $repositoryHash_ref->{REPOSITORY_ROOT} = undef; 229*b1cdbd2cSJim Jagielski $repositoryHash_ref->{REPOSITORY_NAME} = undef; 230*b1cdbd2cSJim Jagielski my $result = RepositoryHelper::search_via_build_lst($repositoryHash_ref); 231*b1cdbd2cSJim Jagielski chdir $repositoryHash_ref->{INITIAL_DIRECTORY}; 232*b1cdbd2cSJim Jagielski if (!$result) { 233*b1cdbd2cSJim Jagielski $result = RepositoryHelper::search_for_hg($repositoryHash_ref); 234*b1cdbd2cSJim Jagielski } 235*b1cdbd2cSJim Jagielski return $result; 236*b1cdbd2cSJim Jagielski} 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski############################################################################################ 239*b1cdbd2cSJim Jagielski# 240*b1cdbd2cSJim Jagielski# get_ResultOfList(): give back an array reference from all SourceConfig Objects results 241*b1cdbd2cSJim Jagielski# 242*b1cdbd2cSJim Jagielski# input: - function : reference to the called function of each SourceConfig Object 243*b1cdbd2cSJim Jagielski# - parameter : parameter for the called function 244*b1cdbd2cSJim Jagielski# 245*b1cdbd2cSJim Jagielski# output: result : array of all results 246*b1cdbd2cSJim Jagielski# 247*b1cdbd2cSJim Jagielski############################################################################################ 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielskisub get_ResultOfList { 250*b1cdbd2cSJim Jagielski my $self = shift; 251*b1cdbd2cSJim Jagielski my $function = shift; 252*b1cdbd2cSJim Jagielski my $parameter = shift; 253*b1cdbd2cSJim Jagielski my @result; 254*b1cdbd2cSJim Jagielski foreach my $source_config (@{$self->{SOURCE_CONFIG_LIST}}) { 255*b1cdbd2cSJim Jagielski push (@result, &$function ($source_config, $parameter)); 256*b1cdbd2cSJim Jagielski } 257*b1cdbd2cSJim Jagielski return \@result; 258*b1cdbd2cSJim Jagielski} 259*b1cdbd2cSJim Jagielski 260*b1cdbd2cSJim Jagielski############################################################################################ 261*b1cdbd2cSJim Jagielski# 262*b1cdbd2cSJim Jagielski# get_StringResult(): give back the first defined result from all SourceConfig Objects 263*b1cdbd2cSJim Jagielski# 264*b1cdbd2cSJim Jagielski# input: - function : reference to the called function of each SourceConfig Object 265*b1cdbd2cSJim Jagielski# - parameter : parameter for the called function 266*b1cdbd2cSJim Jagielski# 267*b1cdbd2cSJim Jagielski# output: result : scalar variable (string), undef if no result 268*b1cdbd2cSJim Jagielski# 269*b1cdbd2cSJim Jagielski############################################################################################ 270*b1cdbd2cSJim Jagielski 271*b1cdbd2cSJim Jagielskisub get_StringResult { 272*b1cdbd2cSJim Jagielski my $self = shift; 273*b1cdbd2cSJim Jagielski my $function = shift; 274*b1cdbd2cSJim Jagielski my $parameter = shift; 275*b1cdbd2cSJim Jagielski my $result_ref; 276*b1cdbd2cSJim Jagielski $result_ref = $self->get_ResultOfList ($function, $parameter); 277*b1cdbd2cSJim Jagielski my $count = @$result_ref; 278*b1cdbd2cSJim Jagielski if ($count>0) { 279*b1cdbd2cSJim Jagielski my $value; 280*b1cdbd2cSJim Jagielski my $i = 0; 281*b1cdbd2cSJim Jagielski while (($i < $count) and !defined ($value)) { # search the first defined result 282*b1cdbd2cSJim Jagielski $value = $$result_ref[$i]; 283*b1cdbd2cSJim Jagielski $i++; 284*b1cdbd2cSJim Jagielski } 285*b1cdbd2cSJim Jagielski return $value; 286*b1cdbd2cSJim Jagielski } 287*b1cdbd2cSJim Jagielski return undef; 288*b1cdbd2cSJim Jagielski} 289*b1cdbd2cSJim Jagielski 290*b1cdbd2cSJim Jagielski############################################################################################ 291*b1cdbd2cSJim Jagielski# 292*b1cdbd2cSJim Jagielski# get_StringResult(): give back a sorted and uniqe array reference of the results 293*b1cdbd2cSJim Jagielski# from all SourceConfig Objects 294*b1cdbd2cSJim Jagielski# 295*b1cdbd2cSJim Jagielski# input: - function : reference to the called function of each SourceConfig Object 296*b1cdbd2cSJim Jagielski# - parameter : parameter for the called function 297*b1cdbd2cSJim Jagielski# 298*b1cdbd2cSJim Jagielski# output: result : sorted and uniqe array reference 299*b1cdbd2cSJim Jagielski# 300*b1cdbd2cSJim Jagielski############################################################################################ 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielskisub get_ArrayResult { 303*b1cdbd2cSJim Jagielski my $self = shift; 304*b1cdbd2cSJim Jagielski my $function = shift; 305*b1cdbd2cSJim Jagielski my $parameter = shift; 306*b1cdbd2cSJim Jagielski my $result_ref; 307*b1cdbd2cSJim Jagielski my @modules; 308*b1cdbd2cSJim Jagielski $result_ref = $self->get_ResultOfList ($function, $parameter); 309*b1cdbd2cSJim Jagielski my $count = @$result_ref; 310*b1cdbd2cSJim Jagielski if ($count>0) { 311*b1cdbd2cSJim Jagielski my %moduleHash; 312*b1cdbd2cSJim Jagielski foreach my $module (@$result_ref) { 313*b1cdbd2cSJim Jagielski $moduleHash{$module}++; 314*b1cdbd2cSJim Jagielski } 315*b1cdbd2cSJim Jagielski @modules = sort keys %moduleHash; 316*b1cdbd2cSJim Jagielski } 317*b1cdbd2cSJim Jagielski return \@modules; 318*b1cdbd2cSJim Jagielski} 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski ##### finish ##### 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski1; # needed by use or require 323*b1cdbd2cSJim Jagielski 324*b1cdbd2cSJim Jagielski__END__ 325*b1cdbd2cSJim Jagielski 326*b1cdbd2cSJim Jagielski=head1 NAME 327*b1cdbd2cSJim Jagielski 328*b1cdbd2cSJim JagielskiSourceConfigHelper - Perl extension for handling with SourceConfigObjetcs 329*b1cdbd2cSJim Jagielski 330*b1cdbd2cSJim Jagielski=head1 SYNOPSIS 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski # example that will read source_config file and return the active repositories 333*b1cdbd2cSJim Jagielski 334*b1cdbd2cSJim Jagielski use SourceConfigHelper; 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim Jagielski # Create a new instance: 337*b1cdbd2cSJim Jagielski $a = SourceConfigHelper->new(); 338*b1cdbd2cSJim Jagielski 339*b1cdbd2cSJim Jagielski # Get repositories for the actual workspace: 340*b1cdbd2cSJim Jagielski $a->get_repositories(); 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski=head1 DESCRIPTION 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim JagielskiSourceConfigHelper is a perl extension to handle more than one objects of SourceConfig 345*b1cdbd2cSJim Jagielskito set up a search order for modules. 346*b1cdbd2cSJim Jagielski 347*b1cdbd2cSJim JagielskiMethods: 348*b1cdbd2cSJim Jagielski 349*b1cdbd2cSJim JagielskiSourceConfigHelper::new() 350*b1cdbd2cSJim Jagielski 351*b1cdbd2cSJim JagielskiCreates a new instance of SourceConfigHelper. Can be initialized by: default - empty or with a constant of search order. default: the source_config will be taken first from the current repository and second from the environment 352*b1cdbd2cSJim JagielskiPossible parameters are: 353*b1cdbd2cSJim JagielskiSourceConfigHelper::SOURCE_CONFIG_NONE - no SourceConfig Object will be created 354*b1cdbd2cSJim JagielskiSourceConfigHelper::SOURCE_CONFIG_CURRENT_FIRST - use the current repository first 355*b1cdbd2cSJim JagielskiSourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_FIRST - use the repository of the environment first 356*b1cdbd2cSJim JagielskiSourceConfigHelper::SOURCE_CONFIG_CURRENT_ONLY - use only the current repository 357*b1cdbd2cSJim JagielskiSourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_ONLY - use only the repository of the environment 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim JagielskiSourceConfigHelper::get_repositories() 360*b1cdbd2cSJim Jagielski 361*b1cdbd2cSJim JagielskiReturns sorted list of active repositories for the actual workspace 362*b1cdbd2cSJim Jagielski 363*b1cdbd2cSJim JagielskiSourceConfigHelper::get_active_modules() 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim JagielskiReturns a sorted list of active modules 366*b1cdbd2cSJim Jagielski 367*b1cdbd2cSJim JagielskiSourceConfigHelper::get_all_modules() 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim JagielskiReturns sorted list of all modules in active repositories. 370*b1cdbd2cSJim Jagielski 371*b1cdbd2cSJim JagielskiSourceConfigHelper::get_module_path($module) 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim JagielskiReturns absolute module path. If the module is not active or don't exists, "undef" will be returned. 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim JagielskiSourceConfigHelper::get_module_repository($module) 376*b1cdbd2cSJim Jagielski 377*b1cdbd2cSJim JagielskiReturns the module's repository. If the module is not active or don't exists, "undef" will be returned. 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim JagielskiSourceConfigHelper::is_active() 380*b1cdbd2cSJim Jagielski 381*b1cdbd2cSJim JagielskiReturns 1 (TRUE) if a module is active 382*b1cdbd2cSJim JagielskiReturns 0 (FALSE) if a module is not active 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim JagielskiSourceConfigHelper::add_SourceConfig($SourceConfigObject) 385*b1cdbd2cSJim Jagielski 386*b1cdbd2cSJim JagielskiAdd the SourceConfigObject to the end of the list 387*b1cdbd2cSJim Jagielski 388*b1cdbd2cSJim JagielskiSourceConfigHelper::get_SourceConfigList() 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim JagielskiReturn an array of SourceConfigObjects 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim JagielskiSourceConfigHelper::has_SourceConfig() 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim JagielskiReturns 1 (TRUE) if one or more SourceConfig Objects is in the list 395*b1cdbd2cSJim JagielskiReturns 0 (FALSE) if no SourceConfig Object is in the list (can happen if there is no valid repository) 396*b1cdbd2cSJim Jagielski 397*b1cdbd2cSJim Jagielski=head2 EXPORT 398*b1cdbd2cSJim Jagielski 399*b1cdbd2cSJim JagielskiSourceConfigHelper::new() 400*b1cdbd2cSJim JagielskiSourceConfigHelper::get_repositories() 401*b1cdbd2cSJim JagielskiSourceConfigHelper::get_active_modules() 402*b1cdbd2cSJim JagielskiSourceConfigHelper::get_all_modules() 403*b1cdbd2cSJim JagielskiSourceConfigHelper::get_module_path($module) 404*b1cdbd2cSJim JagielskiSourceConfigHelper::get_module_repository($module) 405*b1cdbd2cSJim JagielskiSourceConfigHelper::is_active($module) 406*b1cdbd2cSJim JagielskiSourceConfigHelper::add_SourceConfig($SourceConfigObject) 407*b1cdbd2cSJim JagielskiSourceConfigHelper::get_SourceConfigList() 408*b1cdbd2cSJim JagielskiSourceConfigHelper::has_SourceConfig() 409*b1cdbd2cSJim Jagielski 410*b1cdbd2cSJim Jagielski=head1 AUTHOR 411*b1cdbd2cSJim Jagielski 412*b1cdbd2cSJim JagielskiKurt Zenker, kz@openoffice.org 413*b1cdbd2cSJim Jagielski 414*b1cdbd2cSJim Jagielski=head1 SEE ALSO 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielskiperl(1). 417*b1cdbd2cSJim Jagielski 418*b1cdbd2cSJim Jagielski=cut 419