mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-01-24 03:16:47 +02:00
Merge branch 'release/1.0.3'
This commit is contained in:
commit
6e0fd280ea
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
||||||
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
||||||
|
- `КорректировкаXMLФорм` - при выполнении данного сценария, файлы описаний форм (`Form.xml`) проверяются на наличие задублируровашихся ндексов элементов, которые образуются при объединениях. Если дубли есть, то они исправляются
|
||||||
|
|
||||||
## Изменение настроек
|
## Изменение настроек
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.3"
|
||||||
И Вывод команды "oscript" содержит "Установленные настройки:"
|
И Вывод команды "oscript" содержит "Установленные настройки:"
|
||||||
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
||||||
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
||||||
@ -24,9 +24,9 @@
|
|||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит
|
И Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.2
|
precommit4onec v1.0.3
|
||||||
Установленные настройки:
|
Установленные настройки:
|
||||||
ИспользоватьСценарииРепозитория = Нет
|
ИспользоватьСценарииРепозитория = Нет
|
||||||
КаталогЛокальныхСценариев =
|
КаталогЛокальныхСценариев =
|
||||||
ГлобальныеСценарии = РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os
|
ГлобальныеСценарии = КорректировкаXMLФорм.os,РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os
|
||||||
"""
|
"""
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
Сценарий: Получение версии продукта
|
Сценарий: Получение версии продукта
|
||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
|
||||||
Тогда Я сообщаю вывод команды "oscript"
|
Тогда Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "1.0.2"
|
И Вывод команды "oscript" содержит "1.0.3"
|
||||||
И Вывод команды "oscript" не содержит "precommit4onec v"
|
И Вывод команды "oscript" не содержит "precommit4onec v"
|
||||||
И Код возврата команды "oscript" равен 0
|
И Код возврата команды "oscript" равен 0
|
||||||
|
|
||||||
@ -22,7 +22,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
|
||||||
Тогда Вывод команды "oscript" содержит
|
Тогда Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.2
|
precommit4onec v1.0.3
|
||||||
Возможные команды:
|
Возможные команды:
|
||||||
help - Выводит справку по командам
|
help - Выводит справку по командам
|
||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
@ -36,7 +36,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
|
||||||
Тогда Вывод команды "oscript" содержит
|
Тогда Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.2
|
precommit4onec v1.0.3
|
||||||
Возможные команды:
|
Возможные команды:
|
||||||
help - Выводит справку по командам
|
help - Выводит справку по командам
|
||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.3"
|
||||||
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
|
|
||||||
@ -26,13 +26,13 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.3"
|
||||||
И Вывод команды "oscript" содержит "не является репозиторием git"
|
И Вывод команды "oscript" содержит "не является репозиторием git"
|
||||||
|
|
||||||
Сценарий: Установка precommit4onec во вложенные каталоги
|
Сценарий: Установка precommit4onec во вложенные каталоги
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.3"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
//
|
//
|
||||||
Функция ВерсияПродукта() Экспорт
|
Функция ВерсияПродукта() Экспорт
|
||||||
|
|
||||||
Возврат "1.0.2";
|
Возврат "1.0.3";
|
||||||
|
|
||||||
КонецФункции // ВерсияПродукта
|
КонецФункции // ВерсияПродукта
|
||||||
|
|
||||||
|
141
src/СценарииОбработки/КорректировкаXMLФорм.os
Normal file
141
src/СценарииОбработки/КорректировкаXMLФорм.os
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Служебный модуль с реализацией сценариев обработки файлов КорректировкаXMLФорм
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ИмяСценария
|
||||||
|
// Возвращает имя сценария обработки файлов
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Имя текущего сценария обработки файлов
|
||||||
|
//
|
||||||
|
Функция ИмяСценария() Экспорт
|
||||||
|
|
||||||
|
Возврат "КорректировкаXMLФорм";
|
||||||
|
|
||||||
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ОбработатьФайл
|
||||||
|
// Выполняет обработку файла
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||||
|
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||||
|
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||||
|
// * Лог - Объект - Текущий лог
|
||||||
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
||||||
|
// и которые необходимо дообработать
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак выполненной обработки файла
|
||||||
|
//
|
||||||
|
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
|
Если АнализируемыйФайл.Существует() И ЭтоФайлОписанияФормы(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
|
Если ОбновитьИндексыЭлементовВФорме(АнализируемыйФайл.ПолноеИмя) Тогда
|
||||||
|
|
||||||
|
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ИСТИНА;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
|
Функция ЭтоФайлОписанияФормы(Файл)
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СтрСравнить(Файл.Имя, "Form.xml") = 0;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОбновитьИндексыЭлементовВФорме(Знач ИмяФайла)
|
||||||
|
|
||||||
|
Текст = Новый ЧтениеТекста();
|
||||||
|
Текст.Открыть(ИмяФайла, "utf-8");
|
||||||
|
СодержимоеФайла = Текст.Прочитать();
|
||||||
|
Текст.Закрыть();
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение("id=\""([0-9-]+)\""\/*>");
|
||||||
|
Регексп.ИгнорироватьРегистр = ИСТИНА;
|
||||||
|
Регексп.Многострочный = ИСТИНА;
|
||||||
|
ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
Если ГруппыИндексов.Количество() = 0 Тогда
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТЧ = Новый ТаблицаЗначений;
|
||||||
|
ТЧ.Колонки.Добавить("Значение");
|
||||||
|
ТЧ.Колонки.Добавить("Количество");
|
||||||
|
|
||||||
|
СтрокиФайла = Новый Соответствие;
|
||||||
|
Для Каждого ГруппаИндексов Из ГруппыИндексов Цикл
|
||||||
|
|
||||||
|
СтрокаТЧ = ТЧ.ДОбавить();
|
||||||
|
СтрокаТЧ.Значение = Число(ГруппаИндексов.Группы[1].Значение);
|
||||||
|
СтрокаТЧ.Количество = 1;
|
||||||
|
|
||||||
|
СтрокиФайла.Вставить(СтрокаТЧ.Значение, ГруппаИндексов.Группы[1].Индекс);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТЧ.Свернуть("Значение", "Количество");
|
||||||
|
Если ТЧ.Количество() <> ГруппыИндексов.Количество() Тогда
|
||||||
|
|
||||||
|
ТЧ.Сортировать("Значение УБЫВ");
|
||||||
|
ПоследнийНомер = ТЧ[0].Значение;
|
||||||
|
ТЧ.Сортировать("Количество УБЫВ");
|
||||||
|
Для каждого СтрокаТЧ Из ТЧ Цикл
|
||||||
|
|
||||||
|
Если СтрокаТЧ.Количество = 1 Тогда
|
||||||
|
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Пока СтрокаТЧ.Количество > 1 Цикл
|
||||||
|
|
||||||
|
ИсходнаяСтрока = "id=""" + СтрокаТЧ.Значение + """";
|
||||||
|
ПоследнийНомер = ПоследнийНомер + 1;
|
||||||
|
СтрокаЗамены = "id=""" + ПоследнийНомер + """";
|
||||||
|
|
||||||
|
Поз = СтрНайти(СодержимоеФайла, ИсходнаяСтрока);
|
||||||
|
|
||||||
|
НоваяСтрока = Лев(СодержимоеФайла, Поз - 1) + СтрокаЗамены;
|
||||||
|
СодержимоеФайла = НоваяСтрока + Сред(СодержимоеФайла, Поз + СтрДлина(ИсходнаяСтрока));
|
||||||
|
|
||||||
|
СтрокаТЧ.Количество = СтрокаТЧ.Количество - 1;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла,,,, Символы.ПС);
|
||||||
|
ЗаписьТекста.Записать(СодержимоеФайла);
|
||||||
|
ЗаписьТекста.Закрыть();
|
||||||
|
|
||||||
|
Возврат ИСТИНА;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецФункции
|
@ -3,6 +3,7 @@
|
|||||||
"ИспользоватьСценарииРепозитория": false,
|
"ИспользоватьСценарииРепозитория": false,
|
||||||
"КаталогЛокальныхСценариев": "",
|
"КаталогЛокальныхСценариев": "",
|
||||||
"ГлобальныеСценарии": [
|
"ГлобальныеСценарии": [
|
||||||
|
"КорректировкаXMLФорм.os",
|
||||||
"РазборОбычныхФормНаИсходники.os",
|
"РазборОбычныхФормНаИсходники.os",
|
||||||
"РазборОтчетовОбработокРасширений.os"
|
"РазборОтчетовОбработокРасширений.os"
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user