Update of /cvsroot/module-build/Module-Build/lib/Module/Build
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9716/lib/Module/Build
Modified Files:
Base.pm
Log Message:
Integrate from branch
Index: Base.pm
===================================================================
RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v
retrieving revision 1.378
retrieving revision 1.379
diff -u -d -r1.378 -r1.379
--- Base.pm 24 Jan 2005 03:27:36 -0000 1.378
+++ Base.pm 24 Jan 2005 03:41:58 -0000 1.379
@@ -225,12 +225,14 @@
sub base_dir { shift()->{properties}{base_dir} }
sub installdirs { shift()->{properties}{installdirs} }
+sub _is_interactive {
+ return -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)) ; # Pipe?
+}
+
sub prompt {
my $self = shift;
my ($mess, $def) = @_;
die "prompt() called without a prompt message" unless @_;
-
- my $INTERACTIVE = -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)) ; # Pipe?
($def, my $dispdef) = defined $def ? ($def, "[$def] ") : ('', ' ');
@@ -239,7 +241,7 @@
print "$mess $dispdef";
}
my $ans;
- if ($INTERACTIVE) {
+ if ($self->_is_interactive) {
$ans = <STDIN>;
if ( defined $ans ) {
chomp $ans;
@@ -259,12 +261,14 @@
sub y_n {
my $self = shift;
die "y_n() called without a prompt message" unless @_;
-
+
+ my $interactive = $self->_is_interactive;
my $answer;
while (1) {
$answer = $self->prompt(@_);
return 1 if $answer =~ /^y/i;
return 0 if $answer =~ /^n/i;
+ die "No y/n answer given, no default supplied, and no user to ask again" unless $interactive;
print "Please answer 'y' or 'n'.\n";
}
}
|