<?php namespace Mage\Task\BuiltIn\Filesystem; use Mage\Task\AbstractTask; use Mage\Task\SkipException; use Mage\Task\Releases\IsReleaseAware; class ApplyFaclsTask extends AbstractTask implements IsReleaseAware { /** * Returns the Title of the Task * @return string */ public function getName() { return 'Set file ACLs on remote system [built-in]'; } /** * Runs the task * * @return boolean * @throws SkipException */ public function run() { $releasesDirectory = $this->getConfig()->release('directory', 'releases'); $releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory; $currentCopy = $releasesDirectory . '/' . $this->getConfig()->getReleaseId(); $aclParam = $this->getParameter('acl_param', ''); if (empty($aclParam)) { throw new SkipException('Parameter acl_param not set.'); } $folders = $this->getParameter('folders', []); $recursive = $this->getParameter('recursive', false) ? ' -R ' : ' '; foreach ($folders as $folder) { $this->runCommandRemote("setfacl$recursive-m $aclParam $currentCopy/$folder", $output); } return true; } }