/**
* Generates the list of tokens for the scripts.
*
* @param DeployStep $step
* @param Server $server
*
* @return array
*/
private function getTokenList(DeployStep $step, Server $server)
{
$releases_dir = $server->clean_path . '/releases';
$latest_release_dir = $releases_dir . '/' . $this->deployment->release_id;
$release_shared_dir = $server->clean_path . '/shared';
$remote_archive = $server->clean_path . '/' . $this->release_archive;
// Set the deployer tags
$deployer_email = '';
$deployer_name = 'webhook';
if ($this->deployment->user) {
$deployer_name = $this->deployment->user->name;
$deployer_email = $this->deployment->user->email;
} elseif ($this->deployment->is_webhook && !empty($this->deployment->source)) {
$deployer_name = $this->deployment->source;
}
$tokens = ['release' => $this->deployment->release_id, 'release_path' => $latest_release_dir, 'project_path' => $server->clean_path, 'branch' => $this->deployment->branch, 'sha' => $this->deployment->commit, 'short_sha' => $this->deployment->short_commit, 'deployer_email' => $deployer_email, 'deployer_name' => $deployer_name, 'committer_email' => $this->deployment->committer_email, 'committer_name' => $this->deployment->committer];
if (!$step->isCustom()) {
$tokens = array_merge($tokens, ['remote_archive' => $remote_archive, 'include_dev' => $this->deployment->project->include_dev, 'builds_to_keep' => $this->deployment->project->builds_to_keep + 1, 'shared_path' => $release_shared_dir, 'releases_path' => $releases_dir]);
}
return $tokens;
}