/**
  * Adds only valid skeleton names to the available choices.
  */
 protected function setupProperties()
 {
     parent::setupProperties();
     $finder = new SkeletonFinder();
     $this->choices = array();
     foreach ($finder->findAll() as $skeleton_path) {
         $this->choices[] = $skeleton_path->getFilename();
     }
 }
 protected function findSkeletonValidationConfigs()
 {
     $finder = new SkeletonFinder();
     return $finder->findAllValidationFiles();
 }
 /**
  * Copies all files from the source location to the target location.
  */
 protected function copyFiles()
 {
     $skeleton_finder = new SkeletonFinder();
     $source_path = $skeleton_finder->findByName($this->skeleton_name)->getRealpath();
     $finder = $this->getFinderForFilesToCopy($source_path);
     foreach ($finder as $file) {
         $target_file_path = $this->target_path . DIRECTORY_SEPARATOR . $file->getRelativePathname();
         $target_file_path = $this->twig_string_renderer->renderToString($target_file_path, $this->data);
         $this->fs->copy($file->getRealpath(), $target_file_path, $this->overwrite_enabled);
         $msg = '[copy] ' . $file->getRealpath() . ' => ' . $target_file_path;
         if ($this->reporting_enabled) {
             $this->report[] = $msg;
         }
     }
 }