Show
Ignore:
Timestamp:
06/04/08 13:41:25 (5 years ago)
Author:
daisuke
Message:

add a function to create a par file

Location:
lang/perl/XMPP-Bomber/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/XMPP-Bomber/trunk

    • Property svn:executable set to script/xmpp-bomber
  • lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber.pm

    r13187 r13192  
    189189        $sender->stop; 
    190190    } 
    191          
     191} 
     192 
     193sub make_par 
     194{ 
     195    my (%args) = @_; 
     196 
     197    my $find_cmd = sub { 
     198        my ($name, $default) = @_; 
     199 
     200        my $cmd = $default; 
     201        if (! $cmd) { 
     202            foreach my $path (split(/:/, $ENV{PATH})) { 
     203                my $fqpath = File::Spec->catfile($path, $name); 
     204                if (-x $fqpath) { 
     205                    $cmd = $fqpath; 
     206                    last; 
     207                } 
     208            } 
     209        } 
     210 
     211        if (! $cmd || ! -x $cmd) { 
     212            die "Could not find a suitable '$name' executable"; 
     213        } 
     214        return $cmd; 
     215    }; 
     216 
     217    my $pp = $find_cmd->('pp', $ENV{PAR_PACKER}); 
     218    my $xmpp_bomber = $find_cmd->('xmpp-bomber', $ENV{XMPP_BOMBER}); 
     219 
     220    # Now pack all this stuff 
     221    my @modules = ( 
     222        'DateTime::Locale::en', # need to add this manually 
     223        'XMPP::Bomber', 
     224        'XMPP::Bomber::Sender', 
     225        'XMPP::Bomber::Receiver', 
     226        'XMPP::Bomber::Account', 
     227        'XMPP::Bomber::Role::ContentProvider', 
     228        'XMPP::Bomber::Role::UserProvider', 
     229        'XMPP::Bomber::UserProvider::Static', 
     230        'XMPP::Bomber::UserProvider::OpenFire::Random', 
     231        'XMPP::Bomber::ContentProvider::Gibberish', 
     232        @{ $args{extra_modules} || [] } 
     233    ); 
     234 
     235    my $outfile = $args{outfile} || 'xmpp-bomber.par'; 
     236    my @cmd = ( 
     237        $pp, 
     238        '-I' => 'lib', 
     239        "-o" => $outfile, 
     240        (map { ("-M" => $_) } @modules ), 
     241        $xmpp_bomber 
     242    ); 
     243    system(@cmd); 
     244    if ($? != 0 || ! -e $outfile) { 
     245        die "Failed to execute @cmd"; 
     246    } 
    192247} 
    193248 
  • lang/perl/XMPP-Bomber/trunk/script/xmpp-bomber

    • Property svn:executable set to 1