X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FModule%2FInstall%2FCatalyst.pm;h=70c03c8d849307e347882a9616cd079434caa35f;hp=b4745e0d58e724f384f2de9a93f8caad25e7a96e;hb=20682ed82be3b342c7a64bdbbb4e2752be3d688c;hpb=fb68a69767b0dd694eddff54bbfeb2d2303826fc diff --git a/lib/Module/Install/Catalyst.pm b/lib/Module/Install/Catalyst.pm index b4745e0..70c03c8 100644 --- a/lib/Module/Install/Catalyst.pm +++ b/lib/Module/Install/Catalyst.pm @@ -1,7 +1,11 @@ package Module::Install::Catalyst; use strict; -use base 'Module::Install::Base'; + +our @ISA; +require Module::Install::Base; +@ISA = qw/Module::Install::Base/; + use File::Find; use FindBin; use File::Copy::Recursive 'rcopy'; @@ -14,6 +18,7 @@ our @CLASSES = (); our $ENGINE = 'CGI'; our $CORE = 0; our $MULTIARCH = 0; +our $SCRIPT; our $USAGE; =head1 NAME @@ -49,7 +54,7 @@ sub catalyst_files { push @files, $name; } closedir CATDIR; - my @path = split '::', $self->name; + my @path = split '-', $self->name; for my $orig (@files) { my $path = File::Spec->catdir( 'blib', 'lib', @path, $orig ); rcopy( $orig, $path ); @@ -79,7 +84,25 @@ sub catalyst_ignore { =cut # Workaround for a namespace conflict -sub catalyst_par { Catalyst::Module::Install::_catalyst_par(@_) } +sub catalyst_par { + my ( $self, $par ) = @_; + print <name; + my $usage = $USAGE; + $usage =~ s/"/\\"/g; + my $class_string = join "', '", @CLASSES; + $class_string = "'$class_string'" if $class_string; + $self->postamble(< [$class_string], CORE => $CORE, ENGINE => '$ENGINE', MULTIARCH => $MULTIARCH, SCRIPT => '$SCRIPT', USAGE => q#$usage# } )" +EOF + print <{ENGINE}; + my $CLASSES = $opts->{CLASSES} || []; + my $USAGE = $opts->{USAGE}; + my $SCRIPT = $opts->{SCRIPT}; + my $MULTIARCH = $opts->{MULTIARCH}; + my $CORE = $opts->{CORE}; - my $name = $self->name; + my $name = $class_name; $name =~ s/::/_/g; $name = lc $name; $par ||= "$name.par"; - my $engine = $Module::Install::Catalyst::ENGINE || 'CGI'; + my $engine = $ENGINE || 'CGI'; # Check for PAR eval "use PAR ()"; @@ -153,7 +192,7 @@ sub _catalyst_par { die "Please install Module::ScanDeps\n" if $@; my $root = $FindBin::Bin; - my $path = File::Spec->catfile( 'blib', 'lib', split( '::', $self->name ) ); + my $path = File::Spec->catfile( 'blib', 'lib', split( '::', $class_name ) ); $path .= '.pm'; unless ( -f $path ) { print qq/Not writing PAR, "$path" doesn't exist\n/; @@ -166,14 +205,14 @@ sub _catalyst_par { unlink $par_pl; my $version = $Catalyst::VERSION; - my $class = $self->name; + my $class = $class_name; my $classes = ''; - $classes .= " require $_;\n" for @Catalyst::Module::Install::CLASSES; + $classes .= " require $_;\n" for @$CLASSES; unlink $par_pl; - my $usage = $Module::Install::Catalyst::USAGE || <<"EOF"; + my $usage = $USAGE || <<"EOF"; Usage: [parl] $name\[.par] [script] [arguments] @@ -182,12 +221,15 @@ Usage: myapp $name\_cgi.pl EOF + my $script = $SCRIPT; my $tmp_file = IO::File->new("> $par_pl "); print $tmp_file <<"EOF"; if ( \$ENV{PAR_PROGNAME} ) { my \$zip = \$PAR::LibCache{\$ENV{PAR_PROGNAME}} || Archive::Zip->new(__FILE__); - if (\@ARGV == 0 ) { + my \$script = '$script'; + \$ARGV[0] ||= \$script if \$script; + if ( ( \@ARGV == 0 ) || ( \$ARGV[0] eq '-h' ) || ( \$ARGV[0] eq '-help' )) { my \@members = \$zip->membersMatching('.*script/.*\.pl'); my \$list = " Available scripts:\\n"; for my \$member ( \@members ) { @@ -241,8 +283,8 @@ EOF 'o' => $par, 'a' => [ grep( !/par.pl/, glob '.' ) ], 'p' => 1, - 'B' => $Module::Install::Catalyst::CORE, - 'm' => $Module::Install::Catalyst::MULTIARCH + 'B' => $CORE, + 'm' => $MULTIARCH ); App::Packer::PAR->new( frontend => 'Module::ScanDeps',