use FindBin;
use Template;
use Catalyst;
+use Catalyst::Utils;
use Catalyst::Exception;
my %cache;
$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'}
$self->_mk_apptest;
$self->_mk_cgi;
$self->_mk_fastcgi;
+ $self->_mk_jsan;
$self->_mk_server;
$self->_mk_test;
$self->_mk_create;
$file .= '.new';
}
if ( my $f = IO::File->new("> $file") ) {
- $f->binmode;
+ binmode $f;
print $f $content;
print qq/created "$file"\n/;
return 1;
$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' ) );
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};
=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
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
our $VERSION = '0.01';
# Configure the application
-[% name %]->config( name => '[% name %]' );
+__PACKAGE__->config( name => '[% name %]' );
# Start the application
-[% name %]->setup;
+__PACKAGE__->setup;
=head1 NAME
=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
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__
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<sri@oook.de>
+
+=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__
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__
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__
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
=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