/** * Gets the process which is used for the supplied step. * * @param DeployStep $step * @param array $tokens * * @return Process */ private function getScriptForStep(DeployStep $step, array $tokens = []) { switch ($step->stage) { case Stage::DO_CLONE: return new Process('deploy.steps.CreateNewRelease', $tokens); case Stage::DO_INSTALL: // Write configuration file to release dir, symlink shared files and run composer $process = new Process('deploy.steps.InstallComposerDependencies', $tokens); $process->prependScript($this->configurationFileCommands($tokens['release_path']))->appendScript($this->shareFileCommands($tokens['release_path'], $tokens['shared_path'])); return $process; case Stage::DO_ACTIVATE: return new Process('deploy.steps.ActivateNewRelease', $tokens); case Stage::DO_PURGE: return new Process('deploy.steps.PurgeOldReleases', $tokens); } // Custom step return new Process($step->command->script, $tokens, Process::DIRECT_INPUT); }