Changeset 5 in ProjectBuilder for devel/pb/lib/common.pm
- Timestamp:
- Jul 29, 2007, 12:50:34 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/lib/common.pm
r2 r5 9 9 @EXPORT = qw(set_env); 10 10 11 use lib qw (lib); 11 12 use strict; 12 13 use File::Basename; 13 14 use ExtUtils::Command; 14 15 use File::Temp qw /tempdir/; 16 use vars qw (%defpkgdir %extpkgdir %version &pb_init); 17 18 $ENV{'PBCONF'} = "/etc/pb"; 15 19 16 20 sub set_env { 17 21 18 my $tmp = dirname($PROGRAM_NAME); 19 #print "$tmp\n"; 20 if ($tmp =~ /^\//) { 21 $ENV{'TOOLHOME'} = $tmp; 22 } 23 else { 24 $ENV{'TOOLHOME'} = "$ENV{PWD}/$tmp"; 25 } 22 my $proj=shift; 23 my $ver; 24 my $tag; 26 25 27 die "TOOLHOME doesn't exist" if (not (defined $ENV{'TOOLHOME'})); 26 # Check project name 27 if ((defined $ENV{'PBPROJ'}) && 28 (not (defined $proj))) { 29 $proj = $ENV{'PBPROJ'}; 30 } 31 die "No project defined - use env var PBPROJ or -p proj" if (not (defined $proj)); 28 32 29 # Adapt to your needs30 $ENV{'TOPDIR'}=$ENV{'TOOLHOME'}."/../delivery";31 mkpath $ENV{'TOPDIR'};33 # Use project configuration file 34 require "$ENV{'PBCONF'}/$proj.pb"; 35 pb_init(); 32 36 37 # Check content 38 die "PBROOT doesn't exist in $ENV{'PBCONF'}/$proj.pb" if (not (defined $ENV{'PBROOT'})); 39 die "defpkgdir doesn't exist in $ENV{'PBCONF'}/$proj.pb" if (not (defined %defpkgdir)); 40 41 # Set temp directory 33 42 if (undef $ENV{'TMPDIR'}) { 34 43 $ENV{'TMPDIR'}="/tmp"; 35 44 } 36 $ENV{'PROJTMP'} = tempdir( "projbuild.XXXXXXXXXX", DIR => $ENV{'TMPDIR'}, CLEANUP => 1 ); 45 $ENV{'PBTMP'} = tempdir( "pb.XXXXXXXXXX", DIR => $ENV{'TMPDIR'}, CLEANUP => 1 ); 46 47 # Get global VERSION 48 open(VER, "$ENV{'PBROOT'}/VERSION") || die "Unable to open $ENV{'PBROOT'}/VERSION: $?"; 49 $ver = <VER>; 50 chomp($ver); 51 die "Invalid version name $ver in $ENV{'PBROOT'}/VERSION" if ($ver !~ /[0-9.]+/) || (defined $version{$ver}); 52 $ENV{'PBVER'}=$ver; 53 close(VER); 54 55 #Get global TAG 56 open(TAG, "$ENV{'PBROOT'}/TAG") || die "Unable to open $ENV{'PBROOT'}/TAG: $?"; 57 $tag = <TAG>; 58 chomp($tag); 59 die "Invalid version tag $tag in $ENV{'PBROOT'}/TAG" if ($tag !~ /[0-9]+/); 60 $ENV{'PBTAG'}=$tag; 61 close(TAG); 62 63 # Adapt to your needs 64 # Set delivery directory 65 $ENV{'PBTOPDIR'}="$ENV{'PBROOT'}/../delivery"; 66 $ENV{'PBDESTDIR'}=$ENV{'TOPDIR'}."/".$ENV{'PBVER'}."-".$ENV{'PBTAG'}; 67 mkpath $ENV{'PBDESTDIR'}; 37 68 38 69 umask 0022
Note:
See TracChangeset
for help on using the changeset viewer.