#!/usr/bin/env perl
############################################################
#
#   $Id: Build.PL 886 2007-01-04 14:25:25Z nicolaw $
#   DistBuild.PL - CPAN Distribution Build Script for Subversion & CVS
#
#   Copyright 2006 Nicola Worthington
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
############################################################
# vim:ts=4:sw=4:tw=78

use strict;
use Module::Build;
use vars qw($build);

my $build_pkg = eval { require Apache::TestMB }
	? 'Apache::TestMB' : 'Module::Build';

$build = $build_pkg->new(
		module_name        => 'Apache2::AutoIndex::XSLT',
		license            => 'open_source',
		create_makefile_pl => 'passthrough',
		create_readme      => 1,
		create_packlist    => 1,
		sign               => 0,

		requires => {
			'mod_perl2'            => '2.000001',
			'File::Spec'           => 0,
			'Fcntl'                => 0,
			'XML::Quote'           => 0,
			'URI::Escape'          => 0,
			'Apache2::ServerRec'   => 0,
			'Apache2::RequestRec'  => 0,
			'Apache2::RequestUtil' => 0,
			'Apache2::Const'       => 0,
			'Apache2::Log'         => 0,
			'Apache2::Module'      => 0,
			'Apache2::CmdParms'    => 0,
			'Apache2::ServerUtil'  => 0,
			'Apache2::Util'        => 0,
			'Apache2::URI'         => 0,
			'Apache2::Access'      => 0,
		},

		build_requires => {
			'mod_perl2'            => '2.000001',
			'Test'                 => 0,
			'Test::More'           => 0,
			'Apache::Test'         => 0,
			'Apache::TestUtil'     => 0,
			'Apache::TestRequest'  => 0,
			'Apache::TestMB',      => 0,
			'Test::Pod'            => 0,
			'Test::Pod::Coverage'  => 0,
		},
	);

$build->create_build_script;


# Send perl and module version information home if we've been given
# permission to do so by a human being - default to not send for automated
# testing environments, of if the user does not respond within 20 seconds.

my $url = $ENV{AUTOMATED_TESTING} ? undef : may_send_version_information();
if ($url) {
	my @resp = ();
	eval {
		local $SIG{ALRM} = sub { die; };
		alarm 10;
		my $ua = LWP::UserAgent->new(
				agent => 'Build.PL $Revision: 815 $',
				timeout => 9,
				max_size => 500,
			);
		$ua->env_proxy;
		my $response = $ua->get($url);
		if ($response->is_success()) {
			for (split(/\s*\n+\s*/, $response->content())) {
				push @resp, $_ if $_;
			}
		}
		alarm 0;
	};
	print substr($resp[0],0,79) || "Thank you for sending this information.";
	print "\n\n";
}

sub may_send_version_information {
	eval {
		require Config;
		require LWP::UserAgent;
	};
	return undef if $@;

	my $str = sprintf('%s?%s=%s&%s=%s&%s=%s&%s=%s&%s=%s&%s=%s',
			'http://perlgirl.org.uk/lib/usage.cgi',
			'name',     $build->dist_name(),
			'version',  $build->dist_version(),
			'osname',   $Config::Config{osname},
			'archname', $Config::Config{archname},
			'osver',    $^O,
			'perlver',  $]
		);

	print "\nThank you for downloading ".$build->dist_name()."\n\n";
	print "I would like to find out how many people are using this software,\n";
	print "and on what operating systems and Perl versions. If you have an\n";
	print "internet connection, may I transmit the following information:\n\n";
	print "$str\n\n";

	my $send = 0;
	eval {
		local $SIG{ALRM} = sub { die; };
		alarm 20;
		$send = $build->y_n('Send this anonymous information?','n');
		alarm 0;
	};

	return $send ? $str : undef;
}

1;

