Changeset 106 in ProjectBuilder
- Timestamp:
- Sep 5, 2007, 1:21:18 AM (17 years ago)
- Location:
- devel/pb
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r105 r106 29 29 use ProjectBuilder::Changelog qw (pb_changelog); 30 30 use ProjectBuilder::Version qw (pb_version_init); 31 use ProjectBuilder::Base qw (pb_conf_read pb_conf_get pb_cms_init pb_mkdir_p pb_system pb_rm_rf pb_get_filters pb_filter_file pb_filter_file_pb );31 use ProjectBuilder::Base qw (pb_conf_read pb_conf_get pb_cms_init pb_mkdir_p pb_system pb_rm_rf pb_get_filters pb_filter_file pb_filter_file_pb pb_cms_export pb_cms_log); 32 32 33 33 my %opts; # CLI Options … … 117 117 pb_build2ssh(); 118 118 pb_pkg2ssh(); 119 } elsif ($action =~ /^clean$/) { 119 120 } else { 120 121 print $LOG "'$action' is not available\n"; … … 126 127 my $ptr = pb_get_pkg(); 127 128 @pkgs = @$ptr; 128 pb_cms_init($ENV{'PBPROJ'});129 my $cms=pb_cms_init($ENV{'PBPROJ'},$pbdate); 129 130 130 131 my ($pkgv, $pkgt) = pb_conf_read("$ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb","pkgver","pkgtag"); … … 156 157 my $dir = $defpkgdir{$pbpkg}; 157 158 $dir = $extpkgdir{$pbpkg} if (not defined $dir); 158 pb_system("$ENV{'PBCMSEXP'} $option $ENV{'PBROOT'}/$dir $dest 1>/dev/null", "Exporting $ENV{'PBROOT'}/$dir"); 159 160 # Creates a REVISION file 161 open(R,"> $dest/REVISION") || die "Unable to create $dest/REVISION"; 162 print R "$pbrev\n"; 163 close(R); 159 pb_cms_export($cms,$pbdate,"$ENV{'PBROOT'}/$dir",$dest); 164 160 165 161 # Extract cms log history and store it 166 pb_ system("$ENV{'PBCMSLOG'} $option $ENV{'PBROOT'}/$dir > $dest/$ENV{'PBCMSLOGFILE'}", "Extracting log info");162 pb_cms_log($cms,"$ENV{'PBROOT'}/$dir","$dest/$ENV{'PBCMSLOGFILE'}"); 167 163 168 164 my %build; … … 402 398 } 403 399 $src = join(' ',@src); 404 pb_system("ssh -q $mac \"mkdir -p $dir ; cd $dir ; rm -f $src\" 2>/dev/null","Preparing $dir on $mac");400 pb_system("ssh -q $mac \"mkdir -p $dir ; cd $dir ; rm -f $src\"","Preparing $dir on $mac"); 405 401 pb_system("scp -p $src $mac:$dir","$cmt delivery in $dir on $mac"); 406 402 } … … 408 404 sub pb_build2vm { 409 405 my ($vm,$all) = pb_get_vm(); 406 407 # Send tar files when we do a global generation 408 pb_build2ssh() if ($all == 1); 410 409 } 411 410 … … 460 459 my @files; 461 460 462 pb_system("tar xfpz $src $dir >/dev/null","Extracting build files");461 pb_system("tar xfpz $src $dir","Extracting build files"); 463 462 opendir(DIR,"$dir") || die "Unable to open directory $dir"; 464 463 foreach my $f (readdir(DIR)) { -
devel/pb/lib/ProjectBuilder/Base.pm
r105 r106 98 98 %filteredfiles = (); 99 99 %filteredfiles = %$filteredfiles if (defined $filteredfiles); 100 # 101 # Get global Version/Tag 102 # 103 104 if (not defined $ENV{'PBVER'}) { 105 if ((defined $pkgv) && (defined $pkgv->{$proj})) { 106 $ENV{'PBVER'}=$pkgv->{$proj}; 107 } else { 108 die "No projver found in $ENV{'PBCONF'}/$proj.pb"; 109 } 110 } 111 die "Invalid version name $ENV{'PBVER'} in $ENV{'PBCONF'}/$proj.pb" if (($ENV{'PBVER'} !~ /[0-9.]+/) && (not exists $version{$ENV{'PBVER'}})); 112 113 if (not defined $ENV{'PBTAG'}) { 114 if ((defined $pkgt) && (defined $pkgt->{$proj})) { 115 $ENV{'PBTAG'}=$pkgt->{$proj}; 116 } else { 117 die "No projtag found in $ENV{'PBCONF'}/$proj.pb"; 118 } 119 } 120 die "Invalid tag name $ENV{'PBTAG'} in $ENV{'PBCONF'}/$proj.pb" if ($ENV{'PBTAG'} !~ /[0-9.]+/); 100 121 } else { 101 122 die "Unable to open $ENV{'PBCONF'}/$proj.pb"; 102 123 } 103 104 #105 # Get global Version/Tag106 #107 108 if (not defined $ENV{'PBVER'}) {109 if ((defined $pkgv) && (defined $pkgv->{$proj})) {110 $ENV{'PBVER'}=$pkgv->{$proj};111 } else {112 die "No projver found in $ENV{'PBCONF'}/$proj.pb";113 }114 }115 die "Invalid version name $ENV{'PBVER'} in $ENV{'PBCONF'}/$proj.pb" if (($ENV{'PBVER'} !~ /[0-9.]+/) && (not exists $version{$ENV{'PBVER'}}));116 117 if (not defined $ENV{'PBTAG'}) {118 if ((defined $pkgt) && (defined $pkgt->{$proj})) {119 $ENV{'PBTAG'}=$pkgt->{$proj};120 } else {121 die "No projtag found in $ENV{'PBCONF'}/$proj.pb";122 }123 }124 die "Invalid tag name $ENV{'PBTAG'} in $ENV{'PBCONF'}/$proj.pb" if ($ENV{'PBTAG'} !~ /[0-9.]+/);125 124 126 125 # … … 183 182 184 183 print $LOG "$cmt... "; 185 system("$cmd ");184 system("$cmd 2>&1 > $ENV{'PBTMP'}/system.log"); 186 185 if ($? == -1) { 187 print $LOG "failed to execute: $!\n" if ($debug >= 0); 186 print $LOG "failed to execute ($cmd) : $!\n" if ($debug >= 0); 187 pb_display_file("$ENV{'PBTMP'}/system.log"); 188 188 } elsif ($? & 127) { 189 printf $LOG "child died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without' if ($debug >= 0); 190 } else { 189 printf $LOG "child ($cmd) died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without' if ($debug >= 0); 190 pb_display_file("$ENV{'PBTMP'}/system.log"); 191 } elsif ($? == 0) { 191 192 print $LOG "OK\n" if ($debug >= 0); 192 } 193 } else { 194 printf "child ($cmd) exited with value %d\n", $? >> 8; 195 pb_display_file("$ENV{'PBTMP'}/system.log"); 196 } 197 } 198 199 sub pb_display_file { 200 201 my $file=shift; 202 203 open(FILE,"$file") || die "Unable to open $file"; 204 while (<FILE>) { 205 print $LOG; 206 } 207 close(FILE); 193 208 } 194 209 … … 260 275 $ENV{'PBCMSLOG'}="svn log"; 261 276 $ENV{'PBCMSLOGFILE'}="svn.log"; 262 $ENV{'PBCMSEXP'}="svn export";263 277 } elsif ($cms->{$proj} eq "cvs") { 264 $ENV{'PBREVISION'}=`(cd "$ENV{'PBROOT'}" ; cvs rannotate -f . 2>&1 | awk '{print \$1}' | grep -E '^[0-9]' | cut -d. -f2 |sort -nu | tail -1)`; 265 chomp($ENV{'PBREVISION'}); 278 # Way too slow 279 #$ENV{'PBREVISION'}=`(cd "$ENV{'PBROOT'}" ; cvs rannotate -f . 2>&1 | awk '{print \$1}' | grep -E '^[0-9]' | cut -d. -f2 |sort -nu | tail -1)`; 280 #chomp($ENV{'PBREVISION'}); 281 $ENV{'PBREVISION'}="CVS"; 266 282 $ENV{'PBCMSLOG'}="cvs log"; 267 283 $ENV{'PBCMSLOGFILE'}="cvs.log"; 268 $ENV{'PBCMSEXP'}="cvs export";269 284 # 270 285 # Export content if needed … … 274 289 die "cms $cms->{$proj} unknown"; 275 290 } 276 } 291 return($cms); 292 } 293 294 sub pb_cms_export { 295 my $cms = shift; 296 my $pbdate = shift || undef; 297 my $pkgdir = shift; 298 my $destdir = shift; 299 300 if ($cms->{$ENV{'PBPROJ'}} eq "svn") { 301 pb_system("svn export $pkgdir $destdir","Exporting $pkgdir from SVN"); 302 } elsif ($cms->{$ENV{'PBPROJ'}} eq "cvs") { 303 my $dir=dirname($destdir); 304 my $base=basename($destdir); 305 my $tmp=basename($pkgdir); 306 # CVS needs a relative path ! 307 pb_system("cd $dir ; cvs export -D $pbdate -d $base $tmp","Exporting $pkgdir from CVS"); 308 } else { 309 die "cms $cms->{$ENV{'PBPROJ'}} unknown"; 310 } 311 } 312 313 sub pb_cms_log { 314 my $cms = shift; 315 my $pkgdir = shift; 316 my $destfile = shift; 317 318 if ($cms->{$ENV{'PBPROJ'}} eq "svn") { 319 pb_system("svn log $pkgdir > $destfile","Extracting log info from SVN"); 320 } elsif ($cms->{$ENV{'PBPROJ'}} eq "cvs") { 321 my $tmp=basename($pkgdir); 322 # CVS needs a relative path ! 323 pb_system("cvs log $tmp > $destfile","Extracting log info from CVS"); 324 } else { 325 die "cms $cms->{$ENV{'PBPROJ'}} unknown"; 326 } 327 } 328 329 277 330 278 331 # Get all filters to apply
Note:
See TracChangeset
for help on using the changeset viewer.