Mojolicious::Command::Generate::Makefile - Makefile Generator Command


Mojolicious documentation Contained in the Mojolicious distribution.

Index


Code Index:

NAME

Top

Mojolicious::Command::Generate::Makefile - Makefile Generator Command

SYNOPSIS

Top

  use Mojolicious::Command::Generate::Makefile;

  my $makefile = Mojolicious::Command::Generate::Makefile->new;
  $makefile->run(@ARGV);

DESCRIPTION

Top

Mojolicious::Command::Generate::Makefile is a makefile generator.

ATTRIBUTES

Top

Mojolicious::Command::Generate::Makefile inherits all attributes from Mojo::Command and implements the following new ones.

description

  my $description = $makefile->description;
  $makefile       = $makefile->description('Foo!');

Short description of this command, used for the command list.

usage

  my $usage = $makefile->usage;
  $makefile = $makefile->usage('Foo!');

Usage information for this command, used for the help screen.

METHODS

Top

Mojolicious::Command::Generate::Makefile inherits all methods from Mojo::Command and implements the following new ones.

run

  $makefile = $makefile->run(@ARGV);

Run this command.

SEE ALSO

Top

Mojolicious, Mojolicious::Guides, http://mojolicio.us.


Mojolicious documentation Contained in the Mojolicious distribution.

package Mojolicious::Command::Generate::Makefile;
use Mojo::Base 'Mojo::Command';

has description => <<'EOF';
Generate "Makefile.PL".
EOF
has usage => <<"EOF";
usage: $0 generate makefile
EOF

# "If we don't go back there and make that event happen,
#  the entire universe will be destroyed...
#  And as an environmentalist, I'm against that."
sub run {
  my $self = shift;

  my $class = $ENV{MOJO_APP} || 'MyApp';
  my $path  = $self->class_to_path($class);
  my $name  = $self->class_to_file($class);
  $self->render_to_rel_file('makefile', 'Makefile.PL', $class, $path, $name);
  $self->chmod_file('Makefile.PL', 0744);
}

1;
__DATA__
@@ makefile
% my ($class, $path, $name) = @_;
#!/usr/bin/env perl

use 5.008007;

use strict;
use warnings;

use ExtUtils::MakeMaker;

WriteMakefile(
  NAME         => '<%= $class %>',
  VERSION_FROM => 'lib/<%= $path %>',
  AUTHOR       => 'A Good Programmer <nospam@cpan.org>',
  EXE_FILES => ['script/<%= $name %>'],
  PREREQ_PM => { 'Mojolicious' => '1.0' },
  test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
);
__END__