use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. set_swish_version(); WriteMakefile( NAME => 'SWISH::Fork', VERSION_FROM => 'Fork.pm', # finds $VERSION NORECURS => 1, # keep it from recursing into subdirectories DIR => [], PREREQ_PM => { 'SWISH' => 0, #'Sys::Signal' => 0.02, # this is needed under mod_perl }, dist => { COMPRESS => 'gzip', SUFFIX => 'gz', # PREOP => 'pod2text -80 < Fork.pm > README', }, clean => { FILES => 't/test.index t/swish.dat t/test.conf', }, ); sub set_swish_version { $|=1; print "\nFor testing we will need the path to your SWISH-E binary\n", "Also note that you must have the SWISH module also installed.\n\n"; my $swish = ''; for ( split /:/, $ENV{PATH} ) { if ( -x "$_/swish-e" && !-d _ ) { $swish = "$_/swish-e"; last; } } my $version; while ( 1 ) { my $enter = $swish; print "Enter the location of a the swish-e executable[$enter]: "; $enter = ; chomp $enter; $enter = $enter || $swish; $enter =~ s/^(~|\$HOME)/($ENV{HOME}||'')/e; if ( $enter && !-x $enter ) { print "File '$enter' missing or not exectuable\n"; } else { $version = `$enter -V`; $version =~ tr/[0-9].//cd; $version = do { my @v=split('\.', $version ); sprintf "%d." . "%03d"x$#v,@v }; if ( $version ) { print "Your SWISH-E version: $version\n"; $swish = $enter; last; } else { print "Failed to parse version from '$enter'\n"; } } } open FH, '>t/swish.dat' or die "Can't write to t/swish.dat: $!"; print FH "$swish\n$version\n"; create_index( $swish, $version ); } sub create_index { my ($swish, $version) = @_; open ( F, '>t/test.conf' ) or die "Failed to create 't/test.config': $!"; print F "IndexDir t/test.html t/test1.html t/test2.html\n"; if ( $version >= 1.3 ) { $settings{properties} = ['property','property2']; print F "PropertyNames property property2\n"; } close F; unlink 't/test.index' if -r 't/test.index'; print "Creating index...'$swish -c t/test.conf -f t/test.index'\n\n"; system($swish, '-c', 't/test.conf', '-f', 't/test.index', '-v','0'); die "Failed to create index file" unless -r 't/test.index'; }