Skip to content

Commit c078ea1

Browse files
committed
нов: Конвертация результатов от нескольких проектов
1 parent bee8251 commit c078ea1

File tree

2 files changed

+71
-26
lines changed

2 files changed

+71
-26
lines changed

src/Классы/edtExport.os

Lines changed: 70 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
Перем _Лог;
66
Перем _РезультатПроверки;
77
Перем _ФайлДжсон;
8-
Перем _КаталогИсходников;
98
Перем _ВыгружатьОшибкиОбъектов;
109
Перем _ИспользоватьОтносительныеПути;
1110

12-
Перем ГенераторПутей;
11+
Перем КаталогИсходниковПоПроекту;
12+
Перем ГенераторПутейПоПроекту;
1313

1414
Процедура ОписаниеКоманды(Команда) Экспорт
1515

@@ -21,12 +21,17 @@
2121
.ТСтрока()
2222
.ВОкружении("EDT_VALIDATION_JSON");
2323

24-
Команда.Аргумент("SRC", "", "Путь к каталогу с исходниками. Например ./src")
24+
Команда.Аргумент("SRC", "", "Путь к каталогам с исходниками. Можно указать несколько, если результат проверки содержит несколько проектов.
25+
| Пример для одного проекта: `project/src`.
26+
| Пример для несколькоих проектов `project1/src, project2/src`")
2527
.ТСтрока()
2628
.ВОкружении("SRC");
2729

2830
Команда.Опция("e ObjectErrors", Ложь, "Ошибки объектов назначать на первую строку модуля формы/объекта");
2931
Команда.Опция("r UseRelativePaths", Ложь, "В файл результата записывать относительные пути");
32+
33+
Команда.Опция("d debug", Ложь, "Режим отладки")
34+
.ТБулево();
3035

3136
КонецПроцедуры
3237

@@ -48,10 +53,16 @@
4853

4954
Процедура ИнициализацияПараметров(Знач Команда)
5055

56+
Если Команда.ЗначениеОпции("debug") Тогда
57+
_лог.УстановитьУровень(УровниЛога.Отладка);
58+
КонецЕсли;
59+
5160
результатПроверки = Команда.ЗначениеАргумента("EDT_VALIDATION_RESULT");
5261
_лог.Отладка("EDT_VALIDATION_RESULT = " + результатПроверки);
62+
5363
путьКРезультату = Команда.ЗначениеАргумента("EDT_VALIDATION_JSON");
5464
_лог.Отладка("EDT_VALIDATION_JSON = " + путьКРезультату);
65+
5566
путьККаталогуИсходников = Команда.ЗначениеАргумента("SRC");
5667
_лог.Отладка("SRC = " + путьККаталогуИсходников);
5768

@@ -65,26 +76,59 @@
6576

6677
КонецЕсли;
6778

68-
_КаталогИсходников = ОбщегоНазначения.АбсолютныйПуть(путьККаталогуИсходников);
69-
каталогИсходников = Новый Файл(_КаталогИсходников);
70-
_лог.Отладка("Каталог исходников = " + _КаталогИсходников);
71-
72-
Если Не каталогИсходников.Существует()
73-
Или Не каталогИсходников.ЭтоКаталог() Тогда
74-
75-
_лог.Ошибка(СтрШаблон("Каталог исходников <%1> не существует.", путьККаталогуИсходников));
76-
ЗавершитьРаботу(1);
77-
78-
КонецЕсли;
79-
8079
_ФайлДжсон = ОбщегоНазначения.АбсолютныйПуть(путьКРезультату);
8180
_лог.Отладка("Файл результат = " + _ФайлДжсон);
8281

8382
_ВыгружатьОшибкиОбъектов = Команда.ЗначениеОпции("ObjectErrors");
8483
_ИспользоватьОтносительныеПути = Команда.ЗначениеОпции("UseRelativePaths");
84+
85+
ИнициализироватьКаталогиПоПроектам(путьККаталогуИсходников);
86+
87+
КонецПроцедуры
88+
89+
Процедура ИнициализироватьКаталогиПоПроектам(Знач ПутьККаталогуИсходников)
8590

86-
ГенераторПутей = Новый Путь1СПоМетаданным(_КаталогИсходников);
91+
стрКаталоги = СтрЗаменить(ПутьККаталогуИсходников, ";", ",");
92+
каталоги = СтрРазделить(стрКаталоги, ",");
8793

94+
КаталогИсходниковПоПроекту = Новый Соответствие;
95+
96+
Для Каждого цКаталог Из каталоги Цикл
97+
98+
каталогИсходников = Новый Файл(цКаталог);
99+
каталогПроекта = Новый Файл(каталогИсходников.Путь);
100+
101+
файлПроекта = Новый Файл(ОбъединитьПути(каталогПроекта.ПолноеИмя, ".project"));
102+
103+
Если файлПроекта.Существует()
104+
И каталогИсходников.Существует()
105+
И каталогИсходников.ЭтоКаталог() Тогда
106+
107+
имяПроекта = каталогПроекта.Имя;
108+
109+
КаталогИсходниковПоПроекту.Вставить(имяПроекта, каталогИсходников.ПолноеИмя);
110+
111+
_лог.Отладка("Каталог исходников для проекта %1 = %2", имяПроекта, каталогИсходников.ПолноеИмя);
112+
113+
КонецЕсли;
114+
115+
КонецЦикла;
116+
117+
Если КаталогИсходниковПоПроекту.Количество() = 0 Тогда
118+
119+
_лог.Ошибка("Не удалось заполнить соответствие проектов исходникам для SRC = <%1>", ПутьККаталогуИсходников);
120+
ЗавершитьРаботу(1);
121+
122+
КонецЕсли;
123+
124+
ГенераторПутейПоПроекту = Новый Соответствие;
125+
126+
Для Каждого цПроектИКаталог Из КаталогИсходниковПоПроекту Цикл
127+
128+
ГенераторПутейПоПроекту.Вставить(цПроектИКаталог.Ключ, Новый Путь1СПоМетаданным(цПроектИКаталог.Значение));
129+
130+
КонецЦикла;
131+
88132
КонецПроцедуры
89133

90134
Функция ТаблицаПоФайлуРезультата()
@@ -159,7 +203,7 @@
159203

160204
// В отчете могут быть дубли
161205

162-
тз.Свернуть("Правило,Серьезность,Тип,Метаданные,Положение,Описание");
206+
тз.Свернуть("Проект,Правило,Серьезность,Тип,Метаданные,Положение,Описание");
163207

164208
Возврат тз;
165209

@@ -234,6 +278,7 @@
234278
КонецЕсли;
235279

236280
мета = СтрокаТаблицы.Метаданные;
281+
проект = СтрокаТаблицы.Проект;
237282

238283
Если СтрЗаканчиваетсяНа(ВРег(мета), ".ФОРМА") Тогда
239284

@@ -243,23 +288,23 @@
243288

244289
ИначеЕсли СтрРазделить(мета, ".").Количество() = 2 Тогда
245290

246-
Если ПутьКМетаданнымСуществует(мета + ".МодульОбъекта") Тогда
291+
Если ПутьКМетаданнымСуществует(проект, мета + ".МодульОбъекта") Тогда
247292

248293
СтрокаТаблицы.Метаданные = мета + ".МодульОбъекта";
249294

250-
ИначеЕсли ПутьКМетаданнымСуществует(мета + ".МодульМенеджера") Тогда
295+
ИначеЕсли ПутьКМетаданнымСуществует(проект, мета + ".МодульМенеджера") Тогда
251296

252297
СтрокаТаблицы.Метаданные = мета + ".МодульМенеджера";
253298

254-
ИначеЕсли ПутьКМетаданнымСуществует(мета + ".МодульНабораЗаписей") Тогда
299+
ИначеЕсли ПутьКМетаданнымСуществует(проект, мета + ".МодульНабораЗаписей") Тогда
255300

256301
СтрокаТаблицы.Метаданные = мета + ".МодульНабораЗаписей";
257302

258-
ИначеЕсли ПутьКМетаданнымСуществует(мета + ".МодульМенеджераЗначения") Тогда
303+
ИначеЕсли ПутьКМетаданнымСуществует(проект, мета + ".МодульМенеджераЗначения") Тогда
259304

260305
СтрокаТаблицы.Метаданные = мета + ".МодульМенеджераЗначения";
261306

262-
ИначеЕсли ПутьКМетаданнымСуществует(мета + ".МодульКоманды") Тогда
307+
ИначеЕсли ПутьКМетаданнымСуществует(проект, мета + ".МодульКоманды") Тогда
263308

264309
СтрокаТаблицы.Метаданные = мета + ".МодульКоманды";
265310

@@ -294,7 +339,7 @@
294339

295340
Для каждого цСтрока Из таблицаРезультатов Цикл
296341

297-
цСтрока.Путь = генераторПутей.Путь(цСтрока.Метаданные);
342+
цСтрока.Путь = ГенераторПутейПоПроекту[цСтрока.Проект].Путь(цСтрока.Метаданные);
298343

299344
Если Не ПроверитьПуть(цСтрока.Путь, цСтрока.Метаданные) Тогда
300345

@@ -490,9 +535,9 @@
490535

491536
#КонецОбласти
492537

493-
Функция ПутьКМетаданнымСуществует(Знач пМетаданные)
538+
Функция ПутьКМетаданнымСуществует(Знач Проект, Знач пМетаданные)
494539

495-
Путь = генераторПутей.Путь(пМетаданные);
540+
Путь = ГенераторПутейПоПроекту[Проект].Путь(пМетаданные);
496541

497542
Возврат ПроверитьПуть(Путь, пМетаданные, Ложь);
498543

src/Модули/ОПриложении.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
Функция Версия() Экспорт
1111

12-
Возврат "1.9.3";
12+
Возврат "1.10.1";
1313

1414
КонецФункции
1515

0 commit comments

Comments
 (0)