GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Mojolicious::Command(3) User Contributed Perl Documentation Mojolicious::Command(3)

Mojolicious::Command - Command base class

  # Lowercase command name
  package Mojolicious::Command::mycommand;
  use Mojo::Base 'Mojolicious::Command', -signatures;

  # Short description
  has description => 'My first Mojo command';

  # Usage message from SYNOPSIS
  has usage => sub ($self) { $self->extract_usage };

  sub run ($self, @args) {

    # Magic here! :)
  }

  =head1 SYNOPSIS

    Usage: APPLICATION mycommand [OPTIONS]

    Options:
      -s, --something   Does something

  =cut

Mojolicious::Command is an abstract base class for Mojolicious commands.

See "COMMANDS" in Mojolicious::Commands for a list of commands that are available by default.

Mojolicious::Command implements the following attributes.

  my $app  = $command->app;
  $command = $command->app(Mojolicious->new);

Application for command, defaults to a Mojo::HelloWorld object. Note that this attribute is weakened.

  # Introspect
  say "Template path: $_" for @{$command->app->renderer->paths};

  my $description = $command->description;
  $command        = $command->description('Foo');

Short description of command, used for the command list.

  my $bool = $command->quiet;
  $command = $command->quiet($bool);

Limited command output.

  my $template = $command->template;
  $command     = $command->template({vars => 1});

Attribute values passed to Mojo::Template objects used to render templates with "render_data", defaults to activating "vars".

  my $usage = $command->usage;
  $command  = $command->usage('Foo');

Usage information for command, used for the help screen.

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

  $command = $command->chmod_file('/home/sri/foo.txt', 0644);

Change mode of a file.

  $command = $command->chmod_rel_file('foo/foo.txt', 0644);

Portably change mode of a file relative to the current working directory.

  $command = $command->create_dir('/home/sri/foo/bar');

Create a directory if it does not exist already.

  $command = $command->create_rel_dir('foo/bar/baz');

Portably create a directory relative to the current working directory if it does not exist already.

  my $usage = $command->extract_usage;

Extract usage message from the SYNOPSIS section of the file this method was called from with "extract_usage" in Mojo::Util.

  $command->help;

Print usage information for command.

  my $path = $command->rel_file('foo/bar.txt');

Return a Mojo::File object relative to the current working directory.

  my $data = $command->render_data('foo_bar');
  my $data = $command->render_data('foo_bar', @args);
  my $data = $command->render_data('foo_bar', {foo => 'bar'});

Render a template from the "DATA" section of the command class with Mojo::Loader and Mojo::Template. The template can be configured with "template".

  $command = $command->render_to_file('foo_bar', '/home/sri/foo.txt');
  $command = $command->render_to_file('foo_bar', '/home/sri/foo.txt', @args);
  $command = $command->render_to_file(
    'foo_bar', '/home/sri/foo.txt', {foo => 'bar'});

Render a template with "render_data" to a file if it does not exist already, and create the directory if necessary.

  $command = $command->render_to_rel_file('foo_bar', 'foo/bar.txt');
  $command = $command->render_to_rel_file('foo_bar', 'foo/bar.txt', @args);
  $command = $command->render_to_rel_file(
    'foo_bar', 'foo/bar.txt', {foo => 'bar'});

Portably render a template with "render_data" to a file relative to the current working directory if it does not exist already, and create the directory if necessary.

  $command->run;
  $command->run(@ARGV);

Run command. Meant to be overloaded in a subclass.

  $command = $command->write_file('/home/sri/foo.txt', 'Hello World!');

Write text to a file if it does not exist already, and create the directory if necessary.

  $command = $command->write_rel_file('foo/bar.txt', 'Hello World!');

Portably write text to a file relative to the current working directory if it does not exist already, and create the directory if necessary.

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.
2021-12-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.