Changeset 88 in ProjectBuilder
- Timestamp:
- Sep 3, 2007, 4:36:22 PM (18 years ago)
- Location:
- devel/pb
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r87 r88 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_c ms_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); 32 32 33 33 my %opts; # CLI Options … … 99 99 pb_cms2build(); 100 100 pb_build2pkg(); 101 } elsif ($action =~ /^build2 ftp$/) {102 pb_build2 ftp();103 } elsif ($action =~ /^pkg2 ftp$/) {104 pb_pkg2 ftp();101 } elsif ($action =~ /^build2ssh$/) { 102 pb_build2ssh(); 103 } elsif ($action =~ /^pkg2ssh$/) { 104 pb_pkg2ssh(); 105 105 } else { 106 106 print $LOG "'$action' is not available\n"; … … 263 263 my $pkg = pb_conf_read("$ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb","pbpkg"); 264 264 $pkg = { } if (not defined $pkg); 265 my %pkg = %$pkg; 266 if ((not defined $pkg{$pbpkg}) || ($pkg{$pbpkg} ne "$pbver-$pbtag")) { 267 $pkg{$pbpkg} = "$pbver-$pbtag"; 268 } 269 270 print $LOG "DEBUG pkg: ".Dumper(\%pkg)."\n" if ($debug >= 1); 265 if ((not defined $pkg->{$pbpkg}) || ($pkg->{$pbpkg} ne "$pbver-$pbtag")) { 266 $pkg->{$pbpkg} = "$pbver-$pbtag"; 267 } 268 269 print $LOG "DEBUG pkg: ".Dumper($pkg)."\n" if ($debug >= 1); 271 270 open(PKG,"> $ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb") || die "Unable to create $ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb"; 272 foreach my $p (keys % pkg) {273 print PKG "pbpkg $p = $pkg {$p}\n";271 foreach my $p (keys %$pkg) { 272 print PKG "pbpkg $p = $pkg->{$p}\n"; 274 273 } 275 274 close(PKG); … … 290 289 my $pkg = pb_conf_read("$ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb","pbpkg"); 291 290 $pkg = { } if (not defined $pkg); 292 my %pkg = %$pkg;293 291 294 292 chdir "$ENV{'PBBUILDDIR'}"; 295 293 foreach my $pbpkg (@pkgs) { 296 my $vertag = $pkg {$pbpkg};294 my $vertag = $pkg->{$pbpkg}; 297 295 # get the version of the current package - maybe different 298 296 ($pbver,$pbtag) = split(/-/,$vertag); … … 337 335 } 338 336 339 sub pb_build2ftp { 337 sub pb_build2ssh { 338 339 my @src; 340 340 341 341 # Get list of packages to build … … 350 350 my $pkg = pb_conf_read("$ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb","pbpkg"); 351 351 $pkg = { } if (not defined $pkg); 352 my %pkg = %$pkg;353 352 354 353 chdir "$ENV{'PBBUILDDIR'}"; 355 354 foreach my $pbpkg (@pkgs) { 356 my $vertag = $pkg {$pbpkg};355 my $vertag = $pkg->{$pbpkg}; 357 356 # get the version of the current package - maybe different 358 357 ($pbver,$pbtag) = split(/-/,$vertag); … … 360 359 my $src="$ENV{'PBDESTDIR'}/$pbpkg-$pbver.tar.gz"; 361 360 print $LOG "Source file: $src\n" if ($debug >= 0); 362 361 push @src, $src; 363 362 } 364 } 365 sub pb_pkg2ftp { 363 my $pt = pb_conf_get("sshhost", "sshlogin", "sshdir"); 364 my ($sshhost,$sshlogin,$sshdir) = @$pt; 365 my $mac = "$sshlogin->{$ENV{'PBPROJ'}}\@$sshhost->{$ENV{'PBPROJ'}}"; 366 my $dir = "$sshdir->{$ENV{'PBPROJ'}}/src"; 367 pb_system("ssh -q $mac \"mkdir -p $dir","Preparing $dir on $mac"); 368 pb_system("scp -p ".join(' ',@src)." $mac:$dir","Source delivery in $dir on $mac"); 369 } 370 371 sub pb_pkg2ssh { 366 372 367 373 # Get list of packages to build … … 376 382 my $pkg = pb_conf_read("$ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb","pbpkg"); 377 383 $pkg = { } if (not defined $pkg); 378 my %pkg = %$pkg;379 384 380 385 chdir "$ENV{'PBBUILDDIR'}"; 381 386 foreach my $pbpkg (@pkgs) { 382 my $vertag = $pkg {$pbpkg};387 my $vertag = $pkg->{$pbpkg}; 383 388 # get the version of the current package - maybe different 384 389 ($pbver,$pbtag) = split(/-/,$vertag); -
devel/pb/lib/ProjectBuilder/Base.pm
r87 r88 193 193 194 194 # Function which returns a pointer on a hash 195 # corresponding to a declaration (arg2) in the main conf file 196 # and test the returned vaue as they need to exist in that case 197 sub pb_conf_get { 198 199 my @param = @_; 200 201 my $ptr = pb_conf_read("$ENV{'PBETC'}", @param); 202 my @ptr; 203 if ($#param == 0) { 204 push @ptr, $ptr; 205 } else { 206 @ptr = @$ptr; 207 } 208 foreach my $i (0..$#param) { 209 die "No $param[$i] defined for $ENV{'PBPROJ'}" if (not defined $ptr[$i]); 210 my $p = $ptr[$i]; 211 $p->{$ENV{'PBPROJ'}} = $p->{'default'} if (not defined $p->{$ENV{'PBPROJ'}}); 212 die "No $param[$i] defined for $ENV{'PBPROJ'}" if (not defined $p->{$ENV{'PBPROJ'}}); 213 } 214 if ($#param == 0) { 215 print "DEBUG: param: ".Dumper($ptr[0])."\n" if ($debug >= 1); 216 return($ptr[0]); 217 } else { 218 my $ptr = \@ptr; 219 print "DEBUG: param: ".Dumper($ptr)."\n" if ($debug >= 1); 220 return($ptr); 221 } 222 } 223 224 # Function which returns a pointer on a hash 195 225 # corresponding to a declaration (arg2) in a conf file (arg1) 196 226 sub pb_conf_read { … … 222 252 } 223 253 if ($#param == 0) { 224 print "DEBUG: param: ".Dumper($ptr[0])."\n" if ($debug >= 1);254 print "DEBUG: param: $param[0] ".Dumper($ptr[0])."\n" if ($debug >= 1); 225 255 return($ptr[0]); 226 256 } else { 227 257 my $ptr = \@ptr; 228 print "DEBUG: params: ".Dumper( $ptr)."\n" if ($debug >= 1);258 print "DEBUG: params: ".Dumper(@param)." ".Dumper($ptr)."\n" if ($debug >= 1); 229 259 return($ptr); 230 260 } 231 }232 233 sub pb_conf_init {234 235 my $conffile = shift;236 my $ptr;237 my $trace;238 239 if ($debug > 0) {240 $trace = 1;241 } else {242 $trace = 0;243 }244 245 my $config = AppConfig->new({246 # Auto Create variables mentioned in Conf file247 DEBUG => $trace,248 CREATE => '1',249 GLOBAL => {250 # Each conf item is a hash251 ARGCOUNT => ARGCOUNT_HASH,252 },253 });254 $config->file($conffile);255 256 # Root of the project to build257 # needs at least 2 levels of dir as in the upper258 # other dirs will be created and used259 260 261 } 261 262 … … 266 267 my $ret; 267 268 268 my ($cms,$cvsroot) = pb_conf_read("$ENV{'PBETC'}","cms","cvsroot"); 269 die "No CMS defined for $proj" if (not defined $cms); 270 my %cms = %$cms; 271 die "No CMS defined for $proj" if (not defined $cms{$proj}); 272 273 if ($cms{$proj} eq "svn") { 269 my $cms = pb_conf_get("cms"); 270 # This one is optional 271 my $cvsroot = pb_conf_read($ENV{'PBETC'},"cvsroot"); 272 273 if ($cms->{$proj} eq "svn") { 274 274 $ENV{'PBREVISION'}=`(cd "$ENV{'PBROOT'}" ; svnversion .)`; 275 275 chomp($ENV{'PBREVISION'}); … … 277 277 $ENV{'PBCMSLOGFILE'}="svn.log"; 278 278 $ENV{'PBCMSEXP'}="svn export"; 279 } elsif ($cms {$proj} eq "cvs") {279 } elsif ($cms->{$proj} eq "cvs") { 280 280 $ENV{'PBREVISION'}=`(cd "$ENV{'PBROOT'}" ; cvs rannotate -f . 2>&1 | awk '{print \$1}' | grep -E '^[0-9]' | cut -d. -f2 |sort -nu | tail -1)`; 281 281 chomp($ENV{'PBREVISION'}); 282 282 $ENV{'PBCMSLOG'}="cvs log"; 283 283 $ENV{'PBCMSLOGFILE'}="cvs.log"; 284 $ENV{'PBCMSEXP'}="cvs export" 284 $ENV{'PBCMSEXP'}="cvs export"; 285 285 # 286 286 # Export content if needed 287 287 # 288 $ENV{'CVSROOT'} = $cvsroot {$proj} if (defined $cvsroot{$proj});289 } else { 290 die " CMS $cms{$proj} unknown";288 $ENV{'CVSROOT'} = $cvsroot->{$proj} if (defined $cvsroot->{$proj}); 289 } else { 290 die "cms $cms->{$proj} unknown"; 291 291 } 292 292 } -
devel/pb/lib/ProjectBuilder/Changelog.pm
r87 r88 10 10 use File::Basename; 11 11 use English; 12 use ProjectBuilder::Base qw (pb_conf_read );12 use ProjectBuilder::Base qw (pb_conf_read _conf_get); 13 13 14 14 sub pb_changelog { … … 66 66 my $n2date = &UnixDate($date,"%a, %d %b %Y %H:%M:%S %z"); 67 67 #print "**$ndate**\n"; 68 my $packager = pb_conf_ read("$ENV{'PBETC'}","packager");69 my %packager = %$packager; 68 my $packager = pb_conf_get("packager"); 69 70 70 if (($dtype eq "rpm") || ($dtype eq "fc")) { 71 71 if ($ver !~ /-/) { … … 79 79 $ver2 = "$ver$dsuf"; 80 80 } 81 print $OUTPUT "* $ndate $packager {$ENV{'PBPROJ'}} $ver2\n";81 print $OUTPUT "* $ndate $packager->{$ENV{'PBPROJ'}} $ver2\n"; 82 82 print $OUTPUT "- Updated to $ver\n"; 83 83 } … … 102 102 103 103 if ($dtype eq "deb") { 104 print $OUTPUT " -- $packager {$ENV{'PBPROJ'}} $n2date\n\n";104 print $OUTPUT " -- $packager->{$ENV{'PBPROJ'}} $n2date\n\n"; 105 105 print $OUTPUT "\n"; 106 106 }
Note:
See TracChangeset
for help on using the changeset viewer.