Changeset 898 in ProjectBuilder
- Timestamp:
- Nov 10, 2009, 3:31:28 AM (15 years ago)
- Location:
- devel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb-modules/lib/ProjectBuilder/Conf.pm
r891 r898 24 24 our @EXPORT = qw(pb_conf_init pb_conf_add pb_conf_read pb_conf_read_if pb_conf_get pb_conf_get_if); 25 25 26 # Global list of conf files 27 my @pbconffiles = (); 26 # Global hash of conf files 27 # Key is the conf file name 28 # Value is its rank 29 my %pbconffiles; 30 31 # Global hash of cached values. 32 # We consider that values can not change during the life of pb 33 # my %cachedval; 28 34 29 35 =pod … … 53 59 =item B<pb_conf_init> 54 60 55 This function setup the environment PBPROJ for project-builder function usage rfom other projects.61 This function setup the environment PBPROJ for project-builder function usage from other projects. 56 62 The first parameter is the project name. 57 It sets up environ ement variables (PBPROJ)63 It sets up environment variables (PBPROJ) 58 64 59 65 =cut … … 81 87 82 88 pb_log(2,"DEBUG: pb_conf_add with ".Dumper(@_)."\n"); 83 push(@pbconffiles,@_); 89 90 foreach my $cf (@_) { 91 # Skip already used conf files 92 next if (defined $pbconffiles{$cf}); 93 # Add the new one at the end 94 my $num = keys %pbconffiles; 95 $pbconffiles{$cf} = $num; 96 } 84 97 } 85 98 … … 191 204 my $ptr = undef; 192 205 193 # the most important conf file is first, so read them in revers order194 foreach my $f (reverse @pbconffiles) {206 # the most important conf file is first, so read them in reverse order 207 foreach my $f (reverse sort { $pbconffiles{$a} <=> $pbconffiles{$b} } keys %pbconffiles) { 195 208 $ptr = pb_conf_get_fromfile_if("$f",$ptr,@param); 196 209 } … … 234 247 foreach my $i (0..$#param) { 235 248 $p1 = $ptr1[$i]; 249 # Optimisation doesn't seem useful 250 # if ((defined $p1) && (defined $cachedval{$p1})) { 251 # $ptr1[$i] = $cachedval{$p1}; 252 # next; 253 # } 236 254 $p2 = $ptr2[$i]; 237 255 # Always try to take the param from ptr1 … … 271 289 } 272 290 $ptr1[$i] = $p1; 291 # Cache values to avoid redoing all that analyze when asked again on a known value 292 # $cachedval{$p1} = $p1; 273 293 } 274 294 pb_log(2,"DEBUG: pb_conf_get output: ".Dumper(@ptr1)."\n"); -
devel/pb/bin/pb
r897 r898 528 528 my ($scheme, $uri) = pb_cms_init($pbinit); 529 529 530 my ($pkgv, $pkgt) = pb_conf_get_if("pkgver","pkgtag"); 530 # We need 2 lines here 531 my ($pkgv, $pkgt, $testver) = pb_conf_get_if("pkgver","pkgtag","testver"); 532 my @pt = pb_conf_get_if("vmlist","velist"); 531 533 532 534 # declare packager and repo for filtering … … 536 538 537 539 foreach my $pbpkg (@pkgs) { 538 my ($testver) = pb_conf_get_if("testver");539 540 $ENV{'PBPKG'} = $pbpkg; 540 541 … … 596 597 597 598 my %build; 598 my @pt;599 599 # We want to at least build for the underlying distro 600 600 my ($ddir, $dver, $dfam, $dtype, $pbsuf, $pbupd, $arch) = pb_distro_init(); … … 603 603 604 604 # Get list of distributions for which I need to generate build files 605 @pt = pb_conf_get_if("vmlist","velist");606 605 if (defined $pt[0]->{$ENV{'PBPROJ'}}) { 607 606 $tmpl .= $pt[0]->{$ENV{'PBPROJ'}}; … … 632 631 # Do not do that for website 633 632 if ((not defined $param) || ($param ne "Web")) { 633 pb_log(0,"Build files are being generated for ...\n"); 634 634 my %virt; 635 635 # De-duplicate similar VM and VE … … 731 731 push @notfound,$b if ($build{$b} =~ /no/); 732 732 } 733 pb_log(0," Build files generated for".join(',',sort(@found))."\n");733 pb_log(0," ... ".join(',',sort(@found))."\n"); 734 734 pb_log(0,"No Build files found for ".join(',',sort(@notfound))."\n") if (@notfound); 735 735 pb_log(2,"DEBUG: patches: ".Dumper(%patches)."\n"); … … 876 876 877 877 # Get list of packages to build 878 # Get content saved in cms2build879 878 my $ptr = pb_get_pkg(); 880 879 @pkgs = @$ptr; 881 880 881 # Get content saved in cms2build 882 882 my ($pkg) = pb_conf_read("$ENV{'PBDESTDIR'}/$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.pb","pbpkg"); 883 883 $pkg = { } if (not defined $pkg); … … 1174 1174 1175 1175 if ($cmt ne "Announce") { 1176 # Get list of packages to build 1176 1177 my $ptr = pb_get_pkg(); 1177 1178 @pkgs = @$ptr; … … 1979 1980 my ($scheme2,$uri) = pb_cms_init($pbinit); 1980 1981 1981 my ($pbconf ) = pb_conf_get("pbconfurl");1982 my ($pbconf,$pburl) = pb_conf_get("pbconfurl","pburl"); 1982 1983 $uri = $pbconf->{$ENV{'PBPROJ'}}; 1983 1984 my ($scheme, $account, $host, $port, $path) = pb_get_uri($uri); 1984 1985 1985 1986 # Checking CMS repositories status 1986 my ($pburl) = pb_conf_get("pburl");1987 1987 ($scheme2, $account, $host, $port, $path) = pb_get_uri($pburl->{$ENV{'PBPROJ'}}); 1988 1988 … … 2460 2460 my $pbscript = "$ENV{'PBDESTDIR'}/snapv"; 2461 2461 2462 my ($pbac) = pb_conf_get($vtype."login"); 2463 2462 2464 foreach my $v (@$vm) { 2463 2465 # Name of the account to deal with for VM/VE 2464 2466 # Do not use the one passed potentially with -a 2465 my ($pbac) = pb_conf_get($vtype."login");2466 2467 my ($vmexist,$vmpid); 2467 2468
Note:
See TracChangeset
for help on using the changeset viewer.