use strict; use ExtUtils::MakeMaker; use LWP::Simple qw(getstore $ua is_success); if ($ENV{HTTP_proxy_user} and $ENV{HTTP_proxy_pass} and $ENV{HTTP_proxy} =~ /^http:\/\/([^@]+)$/) { my $proxy ="http://$ENV{HTTP_proxy_user}:$ENV{HTTP_proxy_pass}\@" . $1; print "setting user/pass into proxy_env...\n"; $ua->proxy(['http'], $proxy); } my $file = 'mod_perl.so'; my $default = 'D:/Apache2/modules'; print <<"END"; The Apache2 module $file is needed to complete the installation, and should be placed in your Apache2 modules directory. I will now fetch and install this for you. END my $remote = 'http://theoryx5.uwinnipeg.ca/ppms/x86/' . $file; print "Fetching $remote ... "; die "Fetching file failed" unless (is_success(getstore($remote, $file))); print " done!\n"; suggest_manual("Cannot find $file") unless -f $file; my $base = prompt("Where should $file be placed?", $default); $base = Win32::GetShortPathName($base) if $base =~ / /; $base =~ s/$file$//i; $base =~ s!\\!/!g; $base =~ s!/$!!; unless (-d $base) { my $ans = prompt("$base does not exist. Create it?", 'no'); if ($ans =~ /^y/i) { mkdir $base; suggest_manual("Could not create $base: $!") unless (-d $base); } else { suggest_manual("Will not create $base."); } } if (-f "$base/$file") { my $ans = prompt("$base/$file exists. Overwrite?", 'no'); if ($ans =~ /^n/i) { suggest_manual("Will not overwrite $base/$file."); } } use File::Copy; move($file, "$base/$file"); suggest_manual("Moving $file to $base failed: $!") unless (-f "$base/$file"); print << "END"; $file has been successfully installed to $base. To enable mod_perl, put in the directives LoadFile "C:/Path/to/Perl/bin/perl58.dll" LoadModule perl_module modules/mod_perl.so in httpd.conf. For more information, visit http://perl.apache.org/ and especially see http://perl.apache.org/docs/2.0/rename.html END sleep(8); sub suggest_manual { my $msg = shift; print $msg, "\n"; print "Installation of $file not completed.\n"; sleep(5); exit(0); }