|
63 | 63 | ИначеЕсли Команда = ВозможныеКоманды().ОбработатьИзмененияИзГит Тогда |
64 | 64 | ОбработатьИзмененияИзГит(Аргументы.ЗначенияПараметров["ВыходнойКаталог"]); |
65 | 65 | ИначеЕсли Команда = ВозможныеКоманды().Компилировать Тогда |
66 | | - Компилировать(Аргументы.ЗначенияПараметров["ПутьВходящихДанных"], Аргументы.ЗначенияПараметров["ВыходнойКаталог"], Аргументы.ЗначенияПараметров["--type"]); |
| 66 | + Компилировать( |
| 67 | + Аргументы.ЗначенияПараметров["ПутьВходящихДанных"], |
| 68 | + Аргументы.ЗначенияПараметров["ВыходнойКаталог"], |
| 69 | + Аргументы.ЗначенияПараметров["--type"], |
| 70 | + Аргументы.ЗначенияПараметров["--recursive"] |
| 71 | + ); |
67 | 72 | КонецЕсли; |
68 | 73 |
|
69 | 74 | Исключение |
|
102 | 107 | Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьВходящихДанных"); |
103 | 108 | Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ВыходнойКаталог"); |
104 | 109 | Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--type"); |
| 110 | + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--recursive"); |
105 | 111 | Парсер.ДобавитьКоманду(ОписаниеКоманды); |
106 | 112 | КонецПроцедуры |
107 | 113 |
|
|
271 | 277 | Сообщить(" Показ этого экрана"); |
272 | 278 | Сообщить(" --git-precommit outputPath"); |
273 | 279 | Сообщить(" Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс"); |
274 | | - Сообщить(" --compile inputPath outputPath [--type TYPE]"); |
| 280 | + Сообщить(" --compile inputPath outputPath [--type TYPE] [--recursive]"); |
275 | 281 | Сообщить(" Собрать внешний файл/обработку."); |
276 | 282 | Сообщить(" В параметре --type указывается тип файла для сборки (epf/erf). Значение по умолчанию - epf"); |
| 283 | + Сообщить(" Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога"); |
277 | 284 | КонецПроцедуры |
278 | 285 |
|
279 | 286 |
|
|
426 | 433 |
|
427 | 434 | КонецПроцедуры |
428 | 435 |
|
429 | | -Функция Компилировать(Знач Путь, Знач КаталогВыгрузки, Знач ТипФайла) |
430 | | - |
431 | | - Если ТипФайла = Неопределено Тогда |
432 | | - ТипФайла = "epf"; |
433 | | - КонецЕсли; |
| 436 | +Функция Компилировать(Знач Путь, Знач КаталогВыгрузки, Знач ТипФайла = "epf", Знач Рекурсивно = Ложь) Экспорт |
434 | 437 |
|
435 | 438 | ПутьКИсходникам = ОбъединитьПути(ТекущийКаталог(), Путь); |
436 | 439 |
|
|
439 | 442 | Ожидаем.Что(ПапкаИсходников.Существует(), "Папка " + ПутьКИсходникам + " должна существовать").ЭтоИстина(); |
440 | 443 | Ожидаем.Что(ПапкаИсходников.ЭтоКаталог(), "Путь " + ПутьКИсходникам + "должен быть каталогом").ЭтоИстина(); |
441 | 444 |
|
| 445 | + Если Рекурсивно Тогда |
| 446 | + СобратьКаталог(ПутьКИсходникам, КаталогВыгрузки, ТипФайла); |
| 447 | + Иначе |
| 448 | + СобратьФайл(ПутьКИсходникам, КаталогВыгрузки, ТипФайла); |
| 449 | + КонецЕсли; |
| 450 | + |
| 451 | +КонецФункции |
| 452 | + |
| 453 | +Процедура СобратьКаталог(Знач ПутьКИсходникам, КаталогВыгрузки, Знач ТипФайла) |
| 454 | + |
| 455 | + СписокФайловВКаталоге = НайтиФайлы(ПутьКИсходникам); |
| 456 | + |
| 457 | + Если НЕ Новый Файл(КаталогВыгрузки).Существует() Тогда |
| 458 | + СоздатьКаталог(КаталогВыгрузки); |
| 459 | + КонецЕсли; |
| 460 | + |
| 461 | + Для Каждого Файл Из СписокФайловВКаталоге Цикл |
| 462 | + |
| 463 | + Если НЕ Файл.ЭтоКаталог() Тогда |
| 464 | + Продолжить; |
| 465 | + КонецЕсли; |
| 466 | + |
| 467 | + Если ЭтоПутьКИсходнымКодамОбработок(Файл.ПолноеИмя) Тогда |
| 468 | + СобратьФайл(Файл.ПолноеИмя, КаталогВыгрузки, ТипФайла); |
| 469 | + Иначе |
| 470 | + НовыйПутьВыгрузки = ОбъединитьПути(КаталогВыгрузки, Файл.Имя); |
| 471 | + СобратьКаталог(Файл.ПолноеИмя, НовыйПутьВыгрузки, ТипФайла); |
| 472 | + КонецЕсли; |
| 473 | + |
| 474 | + КонецЦикла; |
| 475 | + |
| 476 | +КонецПроцедуры |
| 477 | + |
| 478 | +Функция СобратьФайл(Знач ПутьКИсходникам, Знач КаталогВыгрузки, Знач ТипФайла) |
| 479 | + |
| 480 | + Лог.Информация("Собираю исходники <"+ПутьКИсходникам+">"); |
| 481 | + |
| 482 | + ПапкаИсходников = Новый Файл(ПутьКИсходникам); |
| 483 | + |
442 | 484 | ИмяПапки = ПапкаИсходников.Имя; |
443 | 485 | ИмяФайлаОбъекта = ОбъединитьПути(ТекущийКаталог(), КаталогВыгрузки, ИмяПапки + "." + ТипФайла); |
444 | 486 |
|
445 | 487 | Переименования = ПолучитьСоответствиеПереименований(ПутьКИсходникам); |
446 | | - |
| 488 | + |
447 | 489 | ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); |
| 490 | + Лог.Информация("Восстанавливаю структуру исходников в <" + ВременныйКаталог + ">"); |
448 | 491 |
|
449 | 492 | Для Каждого Переименование Из Переименования Цикл |
450 | 493 |
|
|
472 | 515 |
|
473 | 516 | КонецФункции |
474 | 517 |
|
| 518 | +Функция ЭтоПутьКИсходнымКодамОбработок(ПутьКПапке) |
| 519 | + |
| 520 | + ФайлПереименования = Новый Файл(ОбъединитьПути(ПутьКПапке, "renames.txt")); |
| 521 | + Возврат ФайлПереименования.Существует(); |
| 522 | + |
| 523 | +КонецФункции |
| 524 | + |
475 | 525 | // Функция - Получает соответствие переименований файлов обработки на основе |
476 | 526 | // файла renames.txt |
477 | 527 | // |
|
483 | 533 | // раскладывании файлов по иерархии) |
484 | 534 | // |
485 | 535 | Функция ПолучитьСоответствиеПереименований(ПутьКИсходникам) |
486 | | - Лог.Информация("Собираю исходники <"+ПутьКИсходникам+">"); |
487 | | - |
| 536 | + |
488 | 537 | Переименования = Новый Соответствие; |
489 | 538 |
|
490 | 539 | ФайлПереименования = Новый Файл(ОбъединитьПути(ПутьКИсходникам, "renames.txt")); |
|
0 commit comments