~ubuntu-branches/ubuntu/precise/libmodule-signature-perl/precise-updates

« back to all changes in this revision

Viewing changes to inc/Module/Install/Scripts.pm

  • Committer: Bazaar Package Importer
  • Author(s): Chip Salzenberg
  • Date: 2005-04-08 18:28:23 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050408182823-9f7rbs3n81zp48n1
Tags: 0.44-3
Re-upload with full source, as the 0.44-1 upload was borked so the
0.44-2 upload was refused.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#line 1 "inc/Module/Install/Scripts.pm - /usr/local/lib/perl5/site_perl/5.8.0/Module/Install/Scripts.pm"
2
 
# $File: //depot/cpan/Module-Install/lib/Module/Install/Scripts.pm $ $Author: autrijus $
3
 
# $Revision: #5 $ $Change: 1517 $ $DateTime: 2003/05/15 11:41:01 $ vim: expandtab shiftwidth=4
4
 
 
 
1
#line 1 "inc/Module/Install/Scripts.pm - /usr/local/lib/perl5/site_perl/5.8.5/Module/Install/Scripts.pm"
5
2
package Module::Install::Scripts;
6
3
use Module::Install::Base; @ISA = qw(Module::Install::Base);
7
 
$VERSION = '0.01';
 
4
$VERSION = '0.02';
8
5
use strict;
9
 
use File::Spec;
10
 
use File::Basename;
11
 
use Config;
 
6
use File::Basename ();
12
7
 
13
8
sub prompt_script {
14
9
    my ($self, $script_file) = @_;
15
 
    my @script_lines = $self->_read_script($script_file);
16
 
    my $prompt = '';
17
 
    my $abstract = '';
18
 
    my $default = 'n';
 
10
    my ($prompt, $abstract, $default);
19
11
 
20
 
    for my $line (@script_lines) {
 
12
    foreach my $line ( $self->_read_script($script_file) ) {
21
13
        last unless $line =~ /^#/;
22
 
        $prompt = $1 
23
 
          if $line =~ /^#\s*prompt:\s+(.*)/;
24
 
        $abstract = $1 
25
 
          if $line =~ /^#\s*abstract:\s+(.*)/;
26
 
        $default = $1 
27
 
          if $line =~ /^#\s*default:\s+(.*)/;
 
14
        $prompt = $1   if $line =~ /^#\s*prompt:\s+(.*)/;
 
15
        $default = $1  if $line =~ /^#\s*default:\s+(.*)/;
 
16
        $abstract = $1 if $line =~ /^#\s*abstract:\s+(.*)/;
28
17
    }
29
 
    if (not $prompt) {
30
 
        my $script_name = basename($script_file);
 
18
    unless (defined $prompt) {
 
19
        my $script_name = File::Basename::basename($script_file);
31
20
        $prompt = "Do you want to install '$script_name'";
32
 
        $prompt .= " ($abstract)" if $abstract;
 
21
        $prompt .= " ($abstract)" if defined $abstract;
33
22
        $prompt .= '?';
34
23
    }
35
 
    return unless $self->prompt($prompt, $default) =~ /^[Yy]/;
 
24
    return unless $self->prompt($prompt, ($default || 'n')) =~ /^[Yy]/;
36
25
    $self->install_script($script_file);
37
26
}
38
27
 
39
28
sub install_script {
40
 
    my ($self, $script_file) = @_;
41
 
    my @script_lines = $self->_read_script($script_file);
42
 
    if (not -d 'inc/SCRIPTS') {
43
 
        mkdir('inc/SCRIPTS', 0777)
44
 
          or die "Can't make directory 'inc/SCRIPTS'";
45
 
    }
46
 
 
47
 
    my $new_script = 'inc/SCRIPTS/' . basename($script_file);
48
 
    open SCRIPT, "> $new_script"
49
 
      or die "Can't open '$new_script' for output: $!\n";
50
 
    print SCRIPT $_ for @script_lines;
51
 
    close SCRIPT;
 
29
    my $self = shift;
52
30
    my $args = $self->makemaker_args;
53
 
    my $exe_files = $args->{EXE_FILES} || [];
54
 
    push @$exe_files, $new_script;
55
 
 
56
 
    $self->makemaker_args( EXE_FILES => $exe_files );
 
31
    my $exe_files = $args->{EXE_FILES} ||= [];
 
32
    push @$exe_files, @_;
57
33
}
58
34
 
59
35
sub _read_script {
61
37
    local *SCRIPT;
62
38
    open SCRIPT, $script_file
63
39
      or die "Can't open '$script_file' for input: $!\n";
64
 
    <SCRIPT>;
 
40
    return <SCRIPT>;
65
41
}
66
42
 
67
43
1;