Changeset 5582


Ignore:
Timestamp:
06/25/09 12:23:29 (3 years ago)
Author:
szabgab
Message:

allow the reusing of a partial build, allow skipping the perl building part

Location:
trunk/Perl-Dist-XL
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Perl-Dist-XL/lib/Perl/Dist/XL.pm

    r5581 r5582  
    1212    my ($class, %args) = @_; 
    1313    my $self = bless \%args, $class; 
    14     $self->{temp}             ||= tempdir( CLEANUP => 0 ); 
    15     $self->{perl_install_dir} = "$self->{temp}/perl"; 
    16     $self->{cwd}              = cwd; 
     14 
     15    $self->{cwd} = cwd; 
     16 
     17    if ($self->{temp}) { 
     18        die "$self->{temp} does not exist\n" if not -d $self->{temp}; 
     19    } else { 
     20        $self->{temp} = tempdir( CLEANUP => 1 ); 
     21    } 
     22    $self->{perl_install_dir} = $self->temp_dir . '/' . $self->release_name; 
    1723    return $self; 
    1824} 
     
    2329} 
    2430 
    25 sub install_modules { 
    26     my ($self) = @_; 
    27      
    28     my @modules = ( 
    29         ['Test::Simple'     => '0.88'], 
    30         ['Sub::Uplevel'     => '0.2002'], 
    31         ['Array::Compare'   => '1.17'], 
    32         ['Tree::DAG_Node'   => '1.06'], 
    33         ['Test::Exception'  => '0.27'], 
    34         ['Test::Warn'       => '0.11'], 
    35         ['Test::Tester'     => '0'], 
    36         ['Test::NoWarnings' => '0'], 
    37         ['Test::Deep'       => '0'], 
    38         ['IO::Scalar'       => '0'], 
    39     ); 
    40     foreach my $m (@modules) { 
    41         _system("$self->{perl_install_dir}/bin/perl $self->{perl_install_dir}/bin/mycpan.pl $m->[0]"); 
    42     } 
    43 } 
    4431 
    4532sub build { 
    4633    my ($self) = @_; 
    47     $self->get_perl; 
    48     $self->build_perl; 
    4934 
     35    $self->get_perl   unless $self->skip_perl; 
     36    $self->build_perl unless $self->skip_perl; 
    5037 
    5138    $self->configure_cpan; 
     
    5340    $self->remove_cpan_dir; 
    5441 
    55     #$self->test_perl; 
    56     $self->move_to_other_path; 
    57     #$self->test_perl; 
     42    # TODO: run some tests 
     43    $self->create_zip; 
     44    # TODO: unzip and in some other place and run some more tests 
    5845 
    59     $self->create_zip; 
    6046    return; 
    6147} 
    6248 
    63 sub configure_cpan { 
    64     my ($self) = @_; 
    65     my $from = "$self->{cwd}/share/files/mycpan.pl"; # TODO not from cwd ? 
    66     my $to   = $self->temp_dir . '/perl/bin/'; 
    67     debug("copy '$from', '$to'"); 
    68     copy $from, $to; 
    69     return; 
    70 } 
    71  
    72 sub remove_cpan_dir { 
    73     my ($self) = @_; 
    74     _system("rm -rf " . $self->temp_dir . '/perl/.cpan'); 
    75     return; 
    76 } 
    7749 
    7850sub get_perl { 
     
    10072sub build_perl { 
    10173    my ($self) = @_; 
     74 
    10275    my $dir = $self->cache; 
    10376    my $temp = $self->temp_dir; 
     
    10881    _system("make test"); 
    10982    _system("make install"); 
     83 
     84    return; 
     85} 
     86 
     87sub configure_cpan { 
     88    my ($self) = @_; 
     89    my $from = "$self->{cwd}/share/files/mycpan.pl"; # TODO not from cwd ? 
     90    my $to   = $self->{perl_install_dir} . '/bin/'; 
     91    debug("copy '$from', '$to'"); 
     92    copy $from, $to; 
     93    return; 
     94} 
     95 
     96sub install_modules { 
     97    my ($self) = @_; 
     98     
     99    my @modules = ( 
     100        ['Test::Simple'     => '0.88'], 
     101        ['Sub::Uplevel'     => '0.2002'], 
     102        ['Array::Compare'   => '1.17'], 
     103        ['Tree::DAG_Node'   => '1.06'], 
     104        ['Test::Exception'  => '0.27'], 
     105        ['Test::Warn'       => '0.11'], 
     106        ['Test::Tester'     => '0'], 
     107        ['Test::NoWarnings' => '0'], 
     108        ['Test::Deep'       => '0'], 
     109        ['IO::Scalar'       => '0'], 
     110    ); 
     111    foreach my $m (@modules) { 
     112        _system("$self->{perl_install_dir}/bin/perl $self->{perl_install_dir}/bin/mycpan.pl $m->[0]"); 
     113    } 
     114} 
     115 
     116sub remove_cpan_dir { 
     117    my ($self) = @_; 
     118    _system("rm -rf " . $self->{perl_install_dir} . '/.cpan'); 
     119    return; 
    110120} 
    111121 
     
    115125    chdir $self->temp_dir; 
    116126    my $file = "$self->{cwd}/" . $self->release_name . '.tar.gz'; 
    117     _system("tar czf $file " . $self->release_name); 
     127    _system("tar czf $file " . $self->{perl_install_dir}); 
    118128    return; 
    119129}    
     130 
     131 
     132#### helper subs 
    120133 
    121134sub temp_dir { 
     
    131144} 
    132145 
    133 sub move_to_other_path { 
    134     my ($self) = @_; 
    135      
    136     chdir $self->temp_dir; 
    137     my $release_dir = $self->release_name; 
    138 #   debug(cwd); 
    139     debug("move perl to $release_dir"); 
    140     rename 'perl', $release_dir or die $!; 
    141     return; 
    142 } 
    143146 
    144147sub release_name { 
     
    153156} 
    154157 
     158sub skip_perl { 
     159    return $_[0]->{skipperl}; 
     160} 
    155161 
    156162sub debug { 
  • trunk/Perl-Dist-XL/script/perldist_xl.pl

    r5581 r5582  
    1616    "temp=s", 
    1717    "release=s", 
    18     ) or die; 
    19 die "need --release VERSION\n" if not $conf{release}; 
     18    "skipperl", 
     19    ) or usage(); 
     20usage("need --release VERSION") if not $conf{release}; 
    2021 
    2122my $p = Perl::Dist::XL->new(%conf); 
    2223$p->build; 
    2324 
     25sub usage { 
     26    my $str = shift; 
     27    if ($str) { 
     28        print "\n$str\n\n"; 
     29    } 
     30    print <<"END_USAGE"; 
     31Usage: $0 --release VERSION    ( e.g. 0.01 ) 
    2432 
     33       --temp  PATH/TO/TEMP/DIR 
     34       --skipperl       to skip getting and building perl 
     35 
     36END_USAGE 
     37    exit; 
     38} 
     39 
Note: See TracChangeset for help on using the changeset viewer.