|
1 | | -// Copyright 2016 xDrivenDevelopment |
| 1 | +// Copyright 2016 xDrivenDevelopment |
2 | 2 | // |
3 | 3 | // Licensed under the Apache License, Version 2.0 (the "License"); |
4 | 4 | // you may not use this file except in compliance with the License. |
|
109 | 109 | Аргументы.ЗначенияПараметров["ПутьВходящихДанных"], |
110 | 110 | Аргументы.ЗначенияПараметров["ВыходнойКаталог"] |
111 | 111 | ); |
112 | | - ИначеЕсли Команда = ВозможныеКоманды().Помощь Тогда |
113 | | - ВывестиСправку(); |
114 | 112 | ИначеЕсли Команда = ВозможныеКоманды().ПроверитьКонфигГит Тогда |
115 | 113 | ПроверитьНастройкиРепозитарияГит(); |
116 | 114 | ИначеЕсли Команда = ВозможныеКоманды().ОбработатьИзмененияИзГит Тогда |
|
129 | 127 | ТекущийКаталог(), |
130 | 128 | Аргументы.ЗначенияПараметров["--remove-orig-bin-files"] |
131 | 129 | ); |
| 130 | + Иначе |
| 131 | + ВывестиСправку(); |
132 | 132 | КонецЕсли; |
133 | 133 |
|
134 | 134 | Исключение |
|
140 | 140 | Попытка |
141 | 141 | ВременныеФайлы.Удалить(); |
142 | 142 | Исключение |
| 143 | + Лог.Отладка("Не удалось очистить временные файлы"); |
143 | 144 | КонецПопытки; |
144 | 145 |
|
145 | 146 | Возврат Истина; |
|
200 | 201 |
|
201 | 202 | Лог = Логирование.ПолучитьЛог("oscript.app.v8files-extractor"); |
202 | 203 | Лог.Закрыть(); |
203 | | - //Лог.УстановитьУровень(УровниЛога.Отладка); |
204 | 204 |
|
205 | 205 | ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль(); |
206 | 206 | Лог.ДобавитьСпособВывода(ВыводПоУмолчанию); |
|
230 | 230 | // Если прекоммит установлен, как приложение, в Program Files |
231 | 231 | // То команда не сможет отработать из за отсутствия прав на запись. |
232 | 232 | // Но нам в данном случае и не нужен лог в файле. |
| 233 | + Лог.Отладка("Не смогли открыть лог в файле"); |
233 | 234 | КонецПопытки; |
234 | 235 | КонецПроцедуры |
235 | 236 |
|
|
251 | 252 |
|
252 | 253 | ОтносительныйПутьКаталога = ПолучитьОтносительныйПутьФайла(КаталогКорень, ПутьКаталога); |
253 | 254 | ОтносительныйПутьКаталога = ?(ПустаяСтрока(ОтносительныйПутьКаталога), ПутьКаталога, ОтносительныйПутьКаталога); |
254 | | - Лог.Информация("Подготовка выгрузки каталога %1 в каталог %2, корень %3", ОтносительныйПутьКаталога, КаталогВыгрузки, КаталогКорень); |
| 255 | + Лог.Информация("Подготовка выгрузки каталога %1 в каталог %2, корень %3", |
| 256 | + ОтносительныйПутьКаталога, КаталогВыгрузки, КаталогКорень); |
255 | 257 |
|
256 | 258 | ИмяКаталогаВыгрузки = Новый Файл(КаталогВыгрузки).Имя; |
257 | 259 |
|
258 | 260 | Файлы = НайтиФайлы(ПутьКаталога, ПолучитьМаскуВсеФайлы()); |
259 | | - Для Каждого Файл из Файлы Цикл |
| 261 | + Для Каждого Файл Из Файлы Цикл |
260 | 262 | Если Файл.ЭтоКаталог() Тогда |
261 | 263 |
|
262 | 264 | РазобратьКаталог(Новый Файл(Файл.ПолноеИмя), КаталогВыгрузки, КаталогКорень); |
|
267 | 269 | РазобратьФайлВнутр(Файл, КаталогВыгрузки, КаталогКорень); |
268 | 270 |
|
269 | 271 | Лог.Информация("Завершена выгрузка файла %1 в каталог %2", Файл.Имя, ИмяКаталогаВыгрузки); |
| 272 | + Иначе |
| 273 | + Лог.Отладка("Тип файла не поддерживается: %1", Файл.ПолноеИмя); |
270 | 274 | КонецЕсли; |
271 | 275 | КонецЦикла; |
272 | 276 |
|
273 | | - Лог.Информация("Завершена выгрузка каталога %1 в каталог %2, корень %3", ОтносительныйПутьКаталога, КаталогВыгрузки, КаталогКорень); |
| 277 | + Лог.Информация("Завершена выгрузка каталога %1 в каталог %2, корень %3", |
| 278 | + ОтносительныйПутьКаталога, КаталогВыгрузки, КаталогКорень); |
274 | 279 | КонецПроцедуры |
275 | 280 |
|
276 | 281 | Функция РазобратьФайл(Знач Файл, Знач КаталогВыгрузки, Знач КаталогКорень = "") Экспорт |
277 | 282 | ПутьФайла = Файл.ПолноеИмя; |
278 | | - Лог.Информация("Проверка необходимости выгрузки файла %1 в каталог %2, корень %3", ПутьФайла, КаталогВыгрузки, КаталогКорень); |
| 283 | + Лог.Информация("Проверка необходимости выгрузки файла %1 в каталог %2, корень %3", |
| 284 | + ПутьФайла, КаталогВыгрузки, КаталогКорень); |
279 | 285 |
|
280 | 286 | КаталогИсходников = РазобратьФайлВнутр(Файл, КаталогВыгрузки, КаталогКорень); |
281 | 287 |
|
282 | | - Лог.Информация("Завершена проверка необходимости выгрузки файла %1 в каталог %2, корень %3", ПутьФайла, КаталогВыгрузки, КаталогКорень); |
| 288 | + Лог.Информация("Завершена проверка необходимости выгрузки файла %1 в каталог %2, корень %3", |
| 289 | + ПутьФайла, КаталогВыгрузки, КаталогКорень); |
283 | 290 |
|
284 | 291 | Возврат КаталогИсходников; |
285 | 292 |
|
|
304 | 311 |
|
305 | 312 | ЭтоМакет = ВРег(Файл.Расширение) = ".MXL"; |
306 | 313 |
|
307 | | - Ожидаем.Что(Файл.Существует(), "Файл " + ПутьФайла + " должен существовать").ЭтоИстина(); |
| 314 | + Ожидаем |
| 315 | + .Что(Файл.Существует(), "Файл " + ПутьФайла + " должен существовать") |
| 316 | + .ЭтоИстина(); |
308 | 317 |
|
309 | 318 | Если ЭтоМакет Тогда |
310 | 319 |
|
|
412 | 421 |
|
413 | 422 | Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); |
414 | 423 | Если НЕ ЭтоМакет И ИспользоватьКонфигуратор Тогда |
415 | | - |
416 | | - КоманднаяСтрокаРаспаковки = СтрШаблон("/DumpExternalDataProcessorOrReportToFiles ""%1\%2.xml"" ""%3""", ПапкаИсходников.ПолноеИмя, Файл.ИмяБезРасширения, Файл.ПолноеИмя); |
| 424 | + |
| 425 | + КоманднаяСтрокаРаспаковки = СтрШаблон("/DumpExternalDataProcessorOrReportToFiles ""%1\%2.xml"" ""%3""", |
| 426 | + ПапкаИсходников.ПолноеИмя, Файл.ИмяБезРасширения, Файл.ПолноеИмя); |
417 | 427 |
|
418 | 428 | Лог.Отладка("Командная строка распаковки: " + КоманднаяСтрокаРаспаковки); |
419 | 429 |
|
|
425 | 435 |
|
426 | 436 | ПутьV8Reader = ОбъединитьПути(ТекущийСценарий().Каталог, "v8Reader", "V8Reader.epf"); |
427 | 437 | Лог.Отладка("Путь к V8Reader: " + ПутьV8Reader); |
428 | | - Ожидаем.Что(Новый Файл(ПутьV8Reader).Существует(), "Некорректно установлен V8Reader. Не обнаружен файл <" + ПутьV8Reader + ">").ЭтоИстина(); |
| 438 | + СтрокаОшибки = СтрШаблон("Некорректно установлен V8Reader. Не обнаружен файл <%1>", ПутьV8Reader); |
| 439 | + Ожидаем |
| 440 | + .Что(Новый Файл(ПутьV8Reader).Существует(), СтрокаОшибки) |
| 441 | + .ЭтоИстина(); |
429 | 442 |
|
430 | | - КоманднаяСтрокаV8Reader = СтрШаблон("/C""decompile;pathtocf;%1;pathout;%2;convert-mxl2txt;ЗавершитьРаботуПосле;""", Файл.ПолноеИмя, ?(ЭтоМакет, Файл.Путь, ПапкаИсходников.ПолноеИмя)); |
| 443 | + КоманднаяСтрокаV8Reader = СтрШаблон("/C""decompile;pathtocf;%1;pathout;%2;convert-mxl2txt;ЗавершитьРаботуПосле;""", |
| 444 | + Файл.ПолноеИмя, ?(ЭтоМакет, Файл.Путь, ПапкаИсходников.ПолноеИмя)); |
431 | 445 |
|
432 | 446 | Лог.Отладка("Командная строка V8Reader: " + КоманднаяСтрокаV8Reader); |
433 | 447 |
|
|
474 | 488 | КонецПроцедуры |
475 | 489 |
|
476 | 490 | Процедура ДополнитьФайлХука(КаталогХуков, УдалятьФайлыИзИндексаГит) |
477 | | - СтрокаПараметровПодключения = ?(ИспользоватьКонфигуратор, " --use-designer", ""); |
478 | | - СтрокаПараметровПодключения = ?(УдалятьФайлыИзИндексаГит, |
479 | | - СтрокаПараметровПодключения + " --remove-orig-bin-files", |
480 | | - СтрокаПараметровПодключения); |
| 491 | + СтрокаПараметров = ?(ИспользоватьКонфигуратор, " --use-designer", ""); |
| 492 | + СтрокаПараметров = ?(УдалятьФайлыИзИндексаГит, |
| 493 | + СтрокаПараметров + " --remove-orig-bin-files", |
| 494 | + СтрокаПараметров); |
481 | 495 | Если ЗначениеЗаполнено(КонтекстКонфигуратора) Тогда |
482 | | - ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.КлючСоединенияСБазой, "--ib-connection-string"); |
483 | | - ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.ИмяПользователя, "--ib-user"); |
484 | | - ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.Пароль, "--ib-pwd"); |
| 496 | + ДополнитьСтрокуПараметров(СтрокаПараметров, КонтекстКонфигуратора.КлючСоединенияСБазой, "--ib-connection-string"); |
| 497 | + ДополнитьСтрокуПараметров(СтрокаПараметров, КонтекстКонфигуратора.ИмяПользователя, "--ib-user"); |
| 498 | + ДополнитьСтрокуПараметров(СтрокаПараметров, КонтекстКонфигуратора.Пароль, "--ib-pwd"); |
485 | 499 | КонецЕсли; |
486 | | - Если ЗначениеЗаполнено(СтрокаПараметровПодключения) Тогда |
| 500 | + Если ЗначениеЗаполнено(СтрокаПараметров) Тогда |
487 | 501 | СтрокаПоиска = "oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src"; |
488 | | - СтрокаЗамены = СтрШаблон("%1%2", СтрокаПоиска, СтрокаПараметровПодключения); |
| 502 | + СтрокаЗамены = СтрШаблон("%1%2", СтрокаПоиска, СтрокаПараметров); |
489 | 503 | ЗаменитьСтрокуВФайле(ОбъединитьПути(КаталогХуков, "pre-commit"), СтрокаПоиска, СтрокаЗамены); |
490 | 504 | КонецЕсли; |
491 | 505 | КонецПроцедуры |
492 | 506 |
|
493 | | -Процедура ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, Знач ЗначениеПараметра, Знач ИмяПараметра) |
| 507 | +Процедура ДополнитьСтрокуПараметров(СтрокаПараметровПодключения, Знач ЗначениеПараметра, Знач ИмяПараметра) |
494 | 508 | Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда |
495 | 509 | СтрокаПараметровПодключения = СтрШаблон("%1 %2 %3", СтрокаПараметровПодключения, ИмяПараметра, ЗначениеПараметра); |
496 | 510 | КонецЕсли; |
|
545 | 559 | СоздатьКаталог(ФайлОбъектКаталога.ПолноеИмя); |
546 | 560 | ИначеЕсли Не ФайлОбъектКаталога.ЭтоКаталог() Тогда |
547 | 561 | ВызватьИсключение "Путь " + ФайлОбъектКаталога.ПолноеИмя + " не является каталогом. Выгрузка невозможна"; |
| 562 | + Иначе |
| 563 | + Лог.Отладка("Каталог %1 уже существует, пропускаем", ФайлОбъектКаталога.ПолноеИмя); |
548 | 564 | КонецЕсли; |
549 | 565 |
|
550 | 566 | КонецПроцедуры |
|
699 | 715 | ПараметрыКоманды.Добавить(ОбернутьПутьВКавычки(Каталог)); |
700 | 716 | ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды); |
701 | 717 |
|
702 | | - КонецЦикла |
| 718 | + КонецЦикла; |
703 | 719 |
|
704 | 720 | КонецПроцедуры |
705 | 721 |
|
|
709 | 725 |
|
710 | 726 | ПапкаИсходников = Новый Файл(ПутьКИсходникам); |
711 | 727 |
|
712 | | - Ожидаем.Что(ПапкаИсходников.Существует(), "Папка " + ПутьКИсходникам + " должна существовать").ЭтоИстина(); |
713 | | - Ожидаем.Что(ПапкаИсходников.ЭтоКаталог(), "Путь " + ПутьКИсходникам + "должен быть каталогом").ЭтоИстина(); |
| 728 | + Ожидаем |
| 729 | + .Что(ПапкаИсходников.Существует(), "Папка " + ПутьКИсходникам + " должна существовать") |
| 730 | + .ЭтоИстина(); |
| 731 | + Ожидаем |
| 732 | + .Что(ПапкаИсходников.ЭтоКаталог(), "Путь " + ПутьКИсходникам + "должен быть каталогом") |
| 733 | + .ЭтоИстина(); |
714 | 734 |
|
715 | 735 | Если Рекурсивно Тогда |
716 | 736 | СобратьКаталог(ПутьКИсходникам, КаталогВыгрузки); |
|
838 | 858 | ПутьКФайлуКорневойКонтейнер = ОбъединитьПути(КаталогИсходников, МассивСтрокРут[1]); |
839 | 859 | ФайлКорневойКонтейнер = Новый Файл(ПутьКФайлуКорневойКонтейнер); |
840 | 860 |
|
841 | | - Ожидаем.Что(ФайлКорневойКонтейнер.Существует(), "Файл <" + ПутьКФайлуКорневойКонтейнер + "> должен существовать").ЭтоИстина(); |
842 | | - Ожидаем.Что(ФайлКорневойКонтейнер.ЭтоКаталог(), "<" + ПутьКФайлуКорневойКонтейнер + "> должен быть файлом").ЭтоЛожь(); |
| 861 | + Ожидаем |
| 862 | + .Что(ФайлКорневойКонтейнер.Существует(), "Файл <" + ПутьКФайлуКорневойКонтейнер + "> должен существовать") |
| 863 | + .ЭтоИстина(); |
| 864 | + Ожидаем |
| 865 | + .Что(ФайлКорневойКонтейнер.ЭтоКаталог(), "<" + ПутьКФайлуКорневойКонтейнер + "> должен быть файлом") |
| 866 | + .ЭтоЛожь(); |
843 | 867 |
|
844 | 868 | ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуКорневойКонтейнер); |
845 | 869 | СодержаниеКорневойКонтейнер = ""; |
|
854 | 878 | ЧтениеТекста.Закрыть(); |
855 | 879 |
|
856 | 880 | МассивСтрокКорневойКонтейнер = СтрРазделить(СодержаниеКорневойКонтейнер, ","); |
857 | | - Ожидаем.Что(МассивСтрокКорневойКонтейнер.Количество(), "Некорректный формат файла корневого контейнера <" + ПутьКФайлуКорневойКонтейнер + ">").Больше(3); |
| 881 | + СтрокаОшибки = СтрШаблон("Некорректный формат файла корневого контейнера <%1>", ПутьКФайлуКорневойКонтейнер); |
| 882 | + Ожидаем |
| 883 | + .Что(МассивСтрокКорневойКонтейнер.Количество(), СтрокаОшибки) |
| 884 | + .Больше(3); |
858 | 885 |
|
859 | 886 | ИдентификаторТипаОбъекта = СокрЛП(МассивСтрокКорневойКонтейнер[3]); |
860 | 887 | Если Лев(ИдентификаторТипаОбъекта, 1) = "{" Тогда |
|
896 | 923 |
|
897 | 924 | ФайлПереименования = Новый Файл(ОбъединитьПути(ПутьКИсходникам, "renames.txt")); |
898 | 925 |
|
899 | | - Ожидаем.Что(ФайлПереименования.Существует(), "Файл переименования " + ФайлПереименования.ПолноеИмя + " должен существовать").ЭтоИстина(); |
| 926 | + Ожидаем |
| 927 | + .Что(ФайлПереименования.Существует(), "Файл переименования " + ФайлПереименования.ПолноеИмя + " должен существовать") |
| 928 | + .ЭтоИстина(); |
900 | 929 |
|
901 | 930 | ЧтениеТекста = Новый ЧтениеТекста(ФайлПереименования.ПолноеИмя, КодировкаТекста.UTF8); |
902 | 931 | СтрокаПереименования = ЧтениеТекста.ПрочитатьСтроку(); |
|
948 | 977 | Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); |
949 | 978 | Параметры[0] = "DESIGNER"; |
950 | 979 |
|
951 | | - КоманднаяСтрокаУпаковки = СтрШаблон("/LoadExternalDataProcessorOrReportFromFiles ""%1"" ""%2""", ПапкаИсходников, ИмяФайлаОбъекта); |
| 980 | + КоманднаяСтрокаУпаковки = СтрШаблон("/LoadExternalDataProcessorOrReportFromFiles ""%1"" ""%2""", |
| 981 | + ПапкаИсходников, ИмяФайлаОбъекта); |
952 | 982 |
|
953 | 983 | Лог.Отладка("Командная строка упаковки: " + КоманднаяСтрокаУпаковки); |
954 | 984 |
|
|
964 | 994 | Если ЭтоWindows Тогда |
965 | 995 | ПутьЗапаковщика = ПутьЗапаковщика+".exe"; |
966 | 996 | КонецЕсли; |
967 | | - Ожидаем.Что(Новый Файл(ПутьЗапаковщика).Существует(), "Не найден путь к v8unpack").ЭтоИстина(); |
| 997 | + Ожидаем |
| 998 | + .Что(Новый Файл(ПутьЗапаковщика).Существует(), "Не найден путь к v8unpack") |
| 999 | + .ЭтоИстина(); |
968 | 1000 |
|
969 | 1001 | ВременныйФайл = ВременныеФайлы.СоздатьФайл(); |
970 | 1002 |
|
|
977 | 1009 | Процесс.ОжидатьЗавершения(); |
978 | 1010 |
|
979 | 1011 | ВыводПроцесса = Процесс.ПотокВывода.Прочитать(); |
980 | | - Ожидаем.Что(Процесс.КодВозврата, "Не удалось упаковать каталог " + ПапкаИсходников + Символы.ПС + ВыводПроцесса).Равно(0); |
| 1012 | + Ожидаем |
| 1013 | + .Что(Процесс.КодВозврата, "Не удалось упаковать каталог " + ПапкаИсходников + Символы.ПС + ВыводПроцесса) |
| 1014 | + .Равно(0); |
981 | 1015 | Лог.Отладка(ВыводПроцесса); |
982 | 1016 |
|
983 | 1017 | ФайлОбъекта = Новый Файл(ИмяФайлаОбъекта); |
|
0 commit comments