X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FHelper.pm;h=ab6b11f26f4fe5286ac0e7286be9db8abb06ff28;hb=c664a7e56564c0dc035f31ed900aa697f2e079e4;hp=c0af65257b9a3c22a6607c7c425aa1400dfc757f;hpb=2801426f248e2ba7a457deee5bfe6a95b60bc4cf;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Helper.pm b/lib/Catalyst/Helper.pm index c0af652..ab6b11f 100644 --- a/lib/Catalyst/Helper.pm +++ b/lib/Catalyst/Helper.pm @@ -9,6 +9,7 @@ use IO::File; use FindBin; use Template; use Catalyst; +use Catalyst::Utils; use Catalyst::Exception; my %cache; @@ -61,8 +62,7 @@ sub mk_app { $self->{name} = $name; $self->{dir} = $name; $self->{dir} =~ s/\:\:/-/g; - $self->{appprefix} = lc $self->{dir}; - $self->{appprefix} =~ s/-/_/g; + $self->{appprefix} = Catalyst::Utils::appprefix($name); $self->{startperl} = $Config{startperl}; $self->{scriptgen} = $Catalyst::CATALYST_SCRIPT_GEN || 4; $self->{author} = $self->{author} = $ENV{'AUTHOR'} @@ -77,6 +77,7 @@ sub mk_app { $self->_mk_apptest; $self->_mk_cgi; $self->_mk_fastcgi; + $self->_mk_jsan; $self->_mk_server; $self->_mk_test; $self->_mk_create; @@ -217,6 +218,7 @@ sub mk_file { $file .= '.new'; } if ( my $f = IO::File->new("> $file") ) { + binmode $f; print $f $content; print qq/created "$file"\n/; return 1; @@ -281,6 +283,8 @@ sub _mk_dirs { $self->mk_dir( $self->{static} ); $self->{images} = File::Spec->catdir( $self->{static}, 'images' ); $self->mk_dir( $self->{images} ); + $self->{static} = File::Spec->catdir( $self->{static}, 'js' ); + $self->mk_dir( $self->{static} ); $self->{t} = File::Spec->catdir( $self->{dir}, 't' ); $self->mk_dir( $self->{t} ); $self->mk_dir( File::Spec->catdir( $self->{t}, 'M' ) ); @@ -353,6 +357,14 @@ sub _mk_fastcgi { chmod 0700, "$script/$appprefix\_fastcgi.pl"; } +sub _mk_jsan { + my $self = shift; + my $script = $self->{script}; + my $appprefix = $self->{appprefix}; + $self->render_file( 'jsan', "$script\/$appprefix\_jsan.pl" ); + chmod 0700, "$script/$appprefix\_jsan.pl"; +} + sub _mk_server { my $self = shift; my $script = $self->{script}; @@ -448,8 +460,8 @@ Sebastian Riedel, C =head1 LICENSE -This library is free software . You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut @@ -460,6 +472,7 @@ __appclass__ package [% name %]; use strict; +use warnings; # -Debug activates the debug mode for very useful log messages # Static::Simple will serve static files from the root directory @@ -468,10 +481,10 @@ use Catalyst qw/-Debug Static::Simple/; our $VERSION = '0.01'; # Configure the application -[% name %]->config( name => '[% name %]' ); +__PACKAGE__->config( name => '[% name %]' ); # Start the application -[% name %]->setup; +__PACKAGE__->setup; =head1 NAME @@ -521,8 +534,8 @@ sub default : Private { =head1 LICENSE -This library is free software . You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut @@ -632,8 +645,8 @@ Sebastian Riedel, C Copyright 2004 Sebastian Riedel. All rights reserved. -This library is free software. You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut __fastcgi__ @@ -670,8 +683,71 @@ Sebastian Riedel, C Copyright 2004 Sebastian Riedel. All rights reserved. -This library is free software. You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut +__jsan__ +[% startperl %] -w + +use strict; +use Catalyst; +use Catalyst::Utils; +use File::Spec; +use FindBin; +use lib "$FindBin::Bin/../lib"; + +# Needed for home detection +{ + no warnings 'all'; + sub Catalyst::setup {} + require [% name %]; +} + +my $home = Catalyst::Utils::home('[% name %]'); +$ENV{JSAN_PREFIX} ||= File::Spec->catdir( $home, 'root', 'static', 'js' ); + +# JSAN shell +require JSAN; +JSAN->control; + +1; + +=head1 NAME + +[% appprefix %]_jsan.pl - JSAN shell + +=head1 SYNOPSIS + +[% appprefix %]_jsan.pl [options] + + Examples: + jsan> index + jsan> install Test.Simple + + See also: + perldoc Catalyst::Manual + perldoc Catalyst::Manual::Intro + + +=head1 DESCRIPTION + +Install JavaScript libraries from the JSAN shell. + +=head1 SEE ALSO + +http://openjsan.org + +=head1 AUTHOR + +Sebastian Riedel, C + +=head1 COPYRIGHT + +Copyright 2004 Sebastian Riedel. All rights reserved. + +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut __server__ @@ -758,8 +834,8 @@ Sebastian Riedel, C Copyright 2004 Sebastian Riedel. All rights reserved. -This library is free software. You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut __test__ @@ -815,8 +891,8 @@ Sebastian Riedel, C Copyright 2004 Sebastian Riedel. All rights reserved. -This library is free software. You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut __create__ @@ -881,14 +957,15 @@ Sebastian Riedel, C Copyright 2004 Sebastian Riedel. All rights reserved. -This library is free software. You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut __compclass__ package [% class %]; use strict; +use warnings; use base 'Catalyst::Base'; =head1 NAME @@ -928,8 +1005,8 @@ Catalyst component. =head1 LICENSE -This library is free software . You can redistribute it and/or modify -it under the same terms as perl itself. +This library is free software, you can redistribute it and/or modify +it under the same terms as Perl itself. =cut