Files
icehrm/lib/composer/vendor/consolidation/robo/docs/tasks/Remote.md
2017-09-03 20:39:22 +02:00

4.8 KiB

Remote Tasks

Rsync

Executes rsync in a flexible manner.

$this->taskRsync()
  ->fromPath('src/')
  ->toHost('localhost')
  ->toUser('dev')
  ->toPath('/var/www/html/app/')
  ->remoteShell('ssh -i public_key')
  ->recursive()
  ->excludeVcs()
  ->checksum()
  ->wholeFile()
  ->verbose()
  ->progress()
  ->humanReadable()
  ->stats()
  ->run();

You could also clone the task and do a dry-run first:

$rsync = $this->taskRsync()
  ->fromPath('src/')
  ->toPath('example.com:/var/www/html/app/')
  ->archive()
  ->excludeVcs()
  ->progress()
  ->stats();

$dryRun = clone $rsync;
$dryRun->dryRun()->run();
if ('y' === $this->ask('Do you want to run (y/n)')) {
  $rsync->run();
}
  • fromUser(string $user)

  • fromHost(string $hostname)

  • toUser(string $user)

  • toHost(string $hostname)

  • fromPath($path) This can either be a full rsync path spec (user@host:path) or just a path.

  • toPath($path) This can either be a full rsync path spec (user@host:path) or just a path.

  • fromUser($fromUser) * param string $fromUser

  • fromHost($fromHost) * param string $fromHost

  • toUser($toUser) * param string $toUser

  • toHost($toHost) * param string $toHost

  • progress() * return $this

  • stats() * return $this

  • recursive() * return $this

  • verbose() * return $this

  • checksum() * return $this

  • archive() * return $this

  • compress() * return $this

  • owner() * return $this

  • group() * return $this

  • times() * return $this

  • delete() * return $this

  • timeout($seconds) * param int $seconds

  • humanReadable() * return $this

  • wholeFile() * return $this

  • dryRun() * return $this

  • itemizeChanges() * return $this

  • excludeVcs() Excludes .git, .svn and .hg items at any depth.

  • exclude($pattern) * param array|string $pattern

  • excludeFrom($file) * param string $file

  • includeFilter($pattern) * param array|string $pattern

  • filter($pattern) * param array|string $pattern

  • filesFrom($file) * param string $file

  • remoteShell($command) * param string $command

  • dir($dir) Changes working directory of command

  • printed($arg) Should command output be printed

  • arg($arg) Pass argument to executable. Its value will be automatically escaped.

  • args($args) Pass methods parameters as arguments to executable. Argument values

  • rawArg($arg) Pass the provided string in its raw (as provided) form as an argument to executable.

  • option($option, $value = null) Pass option to executable. Options are prefixed with -- , value can be provided in second parameter.

  • optionList($option, $value = null) Pass multiple options to executable. Value can be a string or array.

Ssh

Runs multiple commands on a remote server. Per default, commands are combined with &&, unless stopOnFail is false.

<?php

$this->taskSshExec('remote.example.com', 'user')
    ->remoteDir('/var/www/html')
    ->exec('ls -la')
    ->exec('chmod g+x logs')
    ->run();

You can even exec other tasks (which implement CommandInterface):

$gitTask = $this->taskGitStack()
    ->checkout('master')
    ->pull();

$this->taskSshExec('remote.example.com')
    ->remoteDir('/var/www/html/site')
    ->exec($gitTask)
    ->run();

You can configure the remote directory for all future calls:

::configure('remoteDir', '/some-dir');
  • $this stopOnFail(bool $stopOnFail) Whether or not to chain commands together with && and stop the chain if one command fails

  • $this remoteDir(string $remoteWorkingDirectory) Changes to the given directory before running commands

  • hostname($hostname) * param string $hostname

  • user($user) * param string $user

  • stopOnFail($stopOnFail = null) * param bool $stopOnFail

  • remoteDir($remoteDir) * param string $remoteDir

  • identityFile($filename) * param string $filename

  • port($port) * param int $port

  • forcePseudoTty() * return $this

  • quiet() * return $this

  • verbose() * return $this

  • exec($command) * param string|string[]|CommandInterface $command

  • simulate($context) {@inheritdoc}

  • dir($dir) Changes working directory of command

  • printed($arg) Should command output be printed

  • arg($arg) Pass argument to executable. Its value will be automatically escaped.

  • args($args) Pass methods parameters as arguments to executable. Argument values

  • rawArg($arg) Pass the provided string in its raw (as provided) form as an argument to executable.

  • option($option, $value = null) Pass option to executable. Options are prefixed with -- , value can be provided in second parameter.

  • optionList($option, $value = null) Pass multiple options to executable. Value can be a string or array.