/** * {@inheritdoc} */ public function execute(ArgumentList $args, BuilderInterface $builder, $simulate) { $file = $builder->target($args[0]); $mode = $args->get(1, 0644); if (!file_exists($file)) { $builder->exec('create', [$file, $mode]); } else { if (!$simulate) { touch($file); } $builder->did('touch', $args[0]); } }
/** * {@inheritdoc} */ public function execute(ArgumentList $args, BuilderInterface $builder, $simulate) { $source = $builder->source($args[0]); $target = $builder->target($args[1]); $variables = $args->get(2, array()); $mode = $args->get(3, 0644); $directory = dirname($target); if (!is_dir($directory)) { $builder->exec('mkdir', [$directory, 0755, true]); } if (file_exists($target)) { throw new ActionFailedException("Target {$target} already exists"); } $variables['args'] = $builder->getArguments(); $content = $this->getTemplateContent($source, $variables); if (!$simulate) { file_put_contents($target, $content); chmod($target, $mode); } $builder->did('generate', $args[1], [decoct($mode)]); }