mirror of
https://github.com/imapsync/imapsync.git
synced 2024-11-17 08:12:48 +01:00
112 lines
2.7 KiB
Perl
112 lines
2.7 KiB
Perl
use ExtUtils::MakeMaker;
|
|
use warnings;
|
|
use strict;
|
|
|
|
sub set_test_data();
|
|
|
|
WriteMakefile
|
|
( NAME => 'Mail::IMAPClient',
|
|
, ABSTRACT => 'IMAP4 client library'
|
|
, VERSION_FROM => 'lib/Mail/IMAPClient.pm'
|
|
, PREREQ_PM =>
|
|
{ 'Errno' => 0
|
|
, 'IO::Socket' => 0
|
|
, 'Fcntl' => 0
|
|
, 'IO::Select' => 0
|
|
, 'IO::File' => 0
|
|
, 'Data::Dumper' => 0
|
|
, 'Carp' => 0
|
|
, 'IO::Socket::INET' => 1.26
|
|
, 'Parse::RecDescent' => 1.94
|
|
, 'Digest::HMAC_MD5' => 0
|
|
, 'MIME::Base64' => 0
|
|
|
|
, 'Test::More' => 0
|
|
, 'File::Temp' => 0.18
|
|
, 'Test::Pod' => 0
|
|
}
|
|
, clean => { FILES => 'test.txt' }
|
|
);
|
|
|
|
set_test_data();
|
|
|
|
exit 0;
|
|
|
|
###
|
|
### HELPERS
|
|
###
|
|
|
|
sub set_test_data()
|
|
{ unless(-f "lib/Mail/IMAPClient.pm")
|
|
{ warn "ERROR: not in installation directory\n";
|
|
return;
|
|
}
|
|
|
|
return if -f "./test.txt";
|
|
|
|
print <<'__INTRO';
|
|
You have the option of running an extended suite of tests during
|
|
'make test'. This requires an IMAP server name, user account, and
|
|
password to test with.
|
|
|
|
__INTRO
|
|
|
|
my $yes = prompt "Do you want to run the extended tests? (n/y)";
|
|
return if $yes !~ /^[Yy](?:[Ee]:[Ss]?)?$/ ;
|
|
|
|
unless(open TST, '>', "./test.txt")
|
|
{ warn "ERROR: couldn't open ./test.txt: $!\n";
|
|
return;
|
|
}
|
|
|
|
my $server = "";
|
|
until($server)
|
|
{ $server = prompt "\nPlease provide the hostname or IP address of "
|
|
. "a host running an\nIMAP server (or QUIT to skip "
|
|
. "the extended tests)";
|
|
chomp $server;
|
|
return if $server =~ /^\s*quit\s*$/i ;
|
|
}
|
|
|
|
print TST "server=$server\n";
|
|
|
|
my $user = "";
|
|
until($user)
|
|
{ $user = prompt "\nProvide the username of an account on $server (or QUIT)";
|
|
chomp $user;
|
|
return if $user =~ /^\s*quit\s*$/i ;
|
|
}
|
|
print TST "user=$user\n";
|
|
|
|
my $passed = "";
|
|
until($passed)
|
|
{ $passed = prompt "\nProvide the password for $user (or QUIT)";
|
|
chomp $passed;
|
|
return if $passed =~ /^\s+$|^quit$/i ;
|
|
}
|
|
|
|
print TST "passed=$passed\n";
|
|
|
|
my $port = prompt "\nPlease provide the port to connect to on $server "
|
|
. "to run the test\n(default is 143)";
|
|
chomp $port;
|
|
$port ||= 143;
|
|
print TST "port=$port\n";
|
|
|
|
my $authmech = prompt "\nProvide the authentication mechanism to use "
|
|
. "on $server to\nrun the test (default is LOGIN)";
|
|
|
|
chomp $authmech;
|
|
$authmech ||= 'LOGIN';
|
|
print TST "authmechanism=$authmech\n";
|
|
close TST;
|
|
|
|
print <<'__THANKS';
|
|
|
|
Gracias! The information you provided (including the password!) has
|
|
been stored in test.txt and SHOULD BE REMOVED (either by hand or by
|
|
'make clean') after testing.
|
|
__THANKS
|
|
|
|
}
|