Changeset 5 in ProjectBuilder for devel/pb/lib/common.pm


Ignore:
Timestamp:
Jul 29, 2007, 12:50:34 AM (17 years ago)
Author:
Bruno Cornec
Message:

Lots of modifs to find the right way. Probably still not good

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/lib/common.pm

    r2 r5  
    99@EXPORT = qw(set_env);
    1010
     11use lib qw (lib);
    1112use strict;
    1213use File::Basename;
    1314use ExtUtils::Command;
    1415use File::Temp qw /tempdir/;
     16use vars qw (%defpkgdir %extpkgdir %version &pb_init);
     17
     18$ENV{'PBCONF'} = "/etc/pb";
    1519
    1620sub set_env {
    1721
    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         }
     22my $proj=shift;
     23my $ver;
     24my $tag;
    2625
    27 die "TOOLHOME doesn't exist" if (not (defined $ENV{'TOOLHOME'}));
     26# Check project name
     27if ((defined $ENV{'PBPROJ'}) &&
     28    (not (defined $proj))) {
     29    $proj = $ENV{'PBPROJ'};
     30}
     31die "No project defined - use env var PBPROJ or -p proj" if (not (defined $proj));
    2832
    29 # Adapt to your needs
    30 $ENV{'TOPDIR'}=$ENV{'TOOLHOME'}."/../delivery";
    31 mkpath $ENV{'TOPDIR'};
     33# Use project configuration file
     34require "$ENV{'PBCONF'}/$proj.pb";
     35pb_init();
    3236
     37# Check content
     38die "PBROOT doesn't exist in $ENV{'PBCONF'}/$proj.pb" if (not (defined $ENV{'PBROOT'}));
     39die "defpkgdir doesn't exist in $ENV{'PBCONF'}/$proj.pb" if (not (defined %defpkgdir));
     40
     41# Set temp directory
    3342if (undef $ENV{'TMPDIR'}) {
    3443    $ENV{'TMPDIR'}="/tmp";
    3544}
    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
     48open(VER, "$ENV{'PBROOT'}/VERSION") || die "Unable to open $ENV{'PBROOT'}/VERSION: $?";
     49$ver = <VER>;
     50chomp($ver);
     51die "Invalid version name $ver in $ENV{'PBROOT'}/VERSION" if ($ver !~ /[0-9.]+/) || (defined $version{$ver});
     52$ENV{'PBVER'}=$ver;
     53close(VER);
     54
     55#Get global TAG
     56open(TAG, "$ENV{'PBROOT'}/TAG") || die "Unable to open $ENV{'PBROOT'}/TAG: $?";
     57$tag = <TAG>;
     58chomp($tag);
     59die "Invalid version tag $tag in $ENV{'PBROOT'}/TAG" if ($tag !~ /[0-9]+/);
     60$ENV{'PBTAG'}=$tag;
     61close(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'};
     67mkpath $ENV{'PBDESTDIR'};
    3768
    3869umask 0022
Note: See TracChangeset for help on using the changeset viewer.