protected function execute(InputInterface $input, OutputInterface $output)
 {
     $bitrix = BitrixTool::getInstance();
     // Исходный компонент.
     $componentName = $input->getOption('component');
     $component = new BitrixComponent($componentName);
     if (!$component->exists()) {
         $output->writeln("<error>Component {$componentName} not found </error>");
         return 1;
     }
     // Копируемый шаблон.
     $srcTemplateName = $input->getArgument('source');
     $srcTemplatePath = $component->getTemplatePath($srcTemplateName);
     if (!file_exists($srcTemplatePath)) {
         $output->writeln("<error>Template {$srcTemplatePath} not found for component {$componentName}</error>");
         return 1;
     }
     // Шаблон сайта, в который будет скопирован шаблон.
     $siteTemplateName = $input->getOption('site-template');
     if (!$siteTemplateName) {
         $output->writeln("<error>Site template name not specified!</error>");
         $output->writeln("<comment>Use --site-template option to specify site template where " . "to place component template.</comment>");
         return 1;
     }
     if (!$bitrix->siteTemplateExists($siteTemplateName)) {
         $output->writeln("<error>Site template {$siteTemplateName} does not exist</error>");
         return 1;
     }
     // Название с которым будет скопирован шаблон.
     $dstTemplateName = $input->getArgument('destination');
     if (!$dstTemplateName) {
         $dstTemplateName = $srcTemplateName;
     }
     // Путь к целевому шаблону.
     $dstTemplatePath = $component->getLocalTemplatePath($siteTemplateName, $dstTemplateName);
     if (file_exists($dstTemplatePath) && !$input->getOption('force')) {
         $output->writeln("<error>Template {$dstTemplateName} already exsist.</error>");
         $output->writeln("<info>Use --force option to overwrite</info>");
         return 1;
     }
     $output->writeln("<comment>Copying component template:</comment>");
     $output->writeln("<comment>--> from:</comment> <info>{$srcTemplatePath}</info>");
     $output->writeln("<comment>--> to:</comment> <info>{$dstTemplatePath}</info>");
     FileSystemHelpers::CopyDir($srcTemplatePath, $dstTemplatePath);
     $output->writeln('<comment>Done!</comment>');
 }