[Module-build-checkins] Module-Build/lib/Module/Build Base.pm,1.378,1.379
Status: Beta
Brought to you by:
kwilliams
From: Ken W. <kwi...@us...> - 2005-01-24 03:42:07
|
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"; } } |