* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Mage\Task\BuiltIn\FS; use Symfony\Component\Process\Process; use Exception; /** * File System Task - Copy a File * * @author Marian Bäuerle */ class ChangeModeTask extends AbstractFileTask { public function getName() { return 'fs/chmod'; } public function getDescription() { try { $description = sprintf('[FS] Change mode of "%s" to "%s"', $this->getFile('file'), $this->options['mode']); if ($this->options['flags'] != null) { $description = sprintf('[FS] Change mode of "%s" to "%s" with flags "%s"', $this->getFile('file'), $this->options['mode'], $this->options['flags']); } return $description; } catch (Exception $exception) { return '[FS] Chmod [missing parameters]'; } } public function execute() { $cmd = sprintf('chmod %s %s %s', $this->options['flags'], $this->options['mode'], $this->getFile('file')); /** @var Process $process */ $process = $this->runtime->runCommand($cmd); return $process->isSuccessful(); } protected function getParameters() { return ['file', 'mode', 'flags']; } public function getDefaults() { return ['flags' => null]; } }