NAME
Canolla::DSL - DSL For Canolla File
SYNOPSIS
use Canolla::DSL;
PROVIDED FUNCTIONS
current_task()
Returns the current task object.
current_remote()
Returns the current remote object, if available
get $name
Return the variable of the parameter pointed by $name. Parameters can be set by calling set(), or by specifying them from the canella command line.
on_finish \&code
Executes the given \&code at the end of the task.
TODO: Currently this does not run the commands remotely even when you set on_finish() inside remote().
TODO: Order of execution is not guaranteed. Need to either fix it or document it
role $name, @spec;
role 'www' => (
hosts => [ qw(host1 host2 host3) ]
);
role 'www' => (
hosts => sub { ... dynamically load hosts },
);
role 'www' => (
hosts => ...,
params => { ... local parameters ... }
);
remote \&code, $host
Specifies that within the given block \&code, run() commands are run on the host specified by $host
run @cmd
Executes @cmd. If called inside a remote() block, the command will be executed on the remote host. Otherwise it will be executed locally
run_local @cmd
Executes @cmd, but always do so on the local machine, regardless of context.
scp_get @args
Calls Net::OpenSSH::scp_get on the currently connected host. Must be called inside a remote() block
scp_put @args
Calls Net::OpenSSH::scp_put on the currently connected host. Must be called inside a remote() block
set $name, $value
Sets the parameter $name to point to $value
task $name, \&code
Declare a new task. There's no notion of hierarchical tasks, but you can always declare them by hand:
task "setup:perl" => sub { ... };
task "setup:nginx" => sub { ... };