mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-05-13 21:56:37 +02:00
Merge branch 'feature/ORAIS-1538' into 'develop'
ORAIS-1538: Исправить ошибку в тестах для сценария распаковки файлов. Closes ORAIS-1538 See merge request orais/precommit1C-fork-bia!72
This commit is contained in:
commit
14bbcaed53
@ -30,6 +30,8 @@
|
|||||||
- для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r`
|
- для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r`
|
||||||
- если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"`
|
- если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"`
|
||||||
|
|
||||||
|
Для корректного отображения путей с кириллицей прекоммит установит настройку Git `core.quotePath` для локального репозитория.
|
||||||
|
|
||||||
После этого, при каждом коммите будет выполняться обработка файлов.
|
После этого, при каждом коммите будет выполняться обработка файлов.
|
||||||
|
|
||||||
В комплекте присутствуют следующие сценарии обработки файлов:
|
В комплекте присутствуют следующие сценарии обработки файлов:
|
||||||
|
@ -34,55 +34,38 @@
|
|||||||
|
|
||||||
Лог = Приложение.ПолучитьЛог();
|
Лог = Приложение.ПолучитьЛог();
|
||||||
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
||||||
|
|
||||||
|
|
||||||
Если НЕ ЗначениеЗаполнено(КаталогРепозитория) Тогда
|
Если НЕ ЗначениеЗаполнено(КаталогРепозитория) Тогда
|
||||||
|
|
||||||
Лог.Ошибка("Для установки прекоммита надо указать каталог");
|
Лог.Ошибка("Для установки прекоммита надо указать каталог");
|
||||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
||||||
|
|
||||||
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
||||||
|
|
||||||
Лог.Ошибка("Каталог репозитория '%1' не существует или это файл", КаталогРепозитория);
|
Лог.Ошибка("Каталог репозитория '%1' не существует или это файл", КаталогРепозитория);
|
||||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||||
|
|
||||||
КаталогИсходныхФайлов = "src";
|
КаталогИсходныхФайлов = "src";
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыСоединенияСИБ = "";
|
ПараметрыСоединенияСИБ = "";
|
||||||
|
|
||||||
РасположениеИБ = ПараметрыКоманды["-ibconnection"];
|
РасположениеИБ = ПараметрыКоманды["-ibconnection"];
|
||||||
Если ЗначениеЗаполнено(РасположениеИБ) Тогда
|
Если ЗначениеЗаполнено(РасположениеИБ) Тогда
|
||||||
|
|
||||||
ПараметрыСоединенияСИБИмяПользователя = "";
|
ПараметрыСоединенияСИБИмяПользователя = "";
|
||||||
ПараметрыСоединенияСИБПарольПользователя = "";
|
ПараметрыСоединенияСИБПарольПользователя = "";
|
||||||
|
|
||||||
ИмяПользователя = ПараметрыКоманды["-u"];
|
ИмяПользователя = ПараметрыКоманды["-u"];
|
||||||
|
|
||||||
Если Не ПустаяСтрока(ИмяПользователя) Тогда
|
Если Не ПустаяСтрока(ИмяПользователя) Тогда
|
||||||
|
|
||||||
ПараметрыСоединенияСИБИмяПользователя = СтрШаблон(" -u ""%1""", ИмяПользователя);
|
ПараметрыСоединенияСИБИмяПользователя = СтрШаблон(" -u ""%1""", ИмяПользователя);
|
||||||
|
|
||||||
ПарольПользователя = ПараметрыКоманды["-p"];
|
ПарольПользователя = ПараметрыКоманды["-p"];
|
||||||
|
|
||||||
Если Не ПустаяСтрока(ПарольПользователя) Тогда
|
Если Не ПустаяСтрока(ПарольПользователя) Тогда
|
||||||
ПараметрыСоединенияСИБПарольПользователя = СтрШаблон(" -p ""%1""", ПарольПользователя);
|
ПараметрыСоединенияСИБПарольПользователя = СтрШаблон(" -p ""%1""", ПарольПользователя);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыСоединенияСИБ = СтрШаблон(" -ibconnection ""%1""%2%3", РасположениеИБ, ПараметрыСоединенияСИБИмяПользователя, ПараметрыСоединенияСИБПарольПользователя);
|
ПараметрыСоединенияСИБ = СтрШаблон(" -ibconnection ""%1""%2%3", РасположениеИБ, ПараметрыСоединенияСИБИмяПользователя, ПараметрыСоединенияСИБПарольПользователя);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КомандаЗапускаПриложения = Приложение.ИмяПродукта();
|
КомандаЗапускаПриложения = Приложение.ИмяПродукта();
|
||||||
@ -91,29 +74,21 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КомандаPrecommtHook = СтрШаблон("#!/bin/sh
|
КомандаPrecommtHook = СтрШаблон("#!/bin/sh
|
||||||
|%1 precommit ./ -source-dir ""%2""%3", КомандаЗапускаПриложения, КаталогИсходныхФайлов, ПараметрыСоединенияСИБ);
|
|%1 precommit ./ -source-dir ""%2""%3", КомандаЗапускаПриложения, КаталогИсходныхФайлов, ПараметрыСоединенияСИБ);
|
||||||
Лог.Отладка("Команда pre-commit hook %2`%1`", КомандаPrecommtHook, Символы.ПС);
|
Лог.Отладка("Команда pre-commit hook %2`%1`", КомандаPrecommtHook, Символы.ПС);
|
||||||
|
|
||||||
Если ПараметрыКоманды["-r"] Тогда
|
Если ПараметрыКоманды["-r"] Тогда
|
||||||
|
|
||||||
// установка во вложенные каталоги
|
// установка во вложенные каталоги
|
||||||
Каталоги = НайтиФайлы(КаталогРепозитория, "*");
|
Каталоги = НайтиФайлы(КаталогРепозитория, "*");
|
||||||
Для Каждого Каталог Из Каталоги Цикл
|
Для Каждого Каталог Из Каталоги Цикл
|
||||||
|
|
||||||
Если НЕ Каталог.ЭтоКаталог() Тогда
|
Если НЕ Каталог.ЭтоКаталог() Тогда
|
||||||
|
|
||||||
Продолжить;
|
Продолжить;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьПрекоммитВКаталогРепозитория(Каталог.ПолноеИмя, КомандаPrecommtHook);
|
УстановитьПрекоммитВКаталогРепозитория(Каталог.ПолноеИмя, КомандаPrecommtHook);
|
||||||
|
КонецЦикла;
|
||||||
КонецЦикла
|
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
УстановитьПрекоммитВКаталогРепозитория(КаталогРепозитория, КомандаPrecommtHook);
|
УстановитьПрекоммитВКаталогРепозитория(КаталогРепозитория, КомандаPrecommtHook);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// При успешном выполнении возвращает код успеха
|
// При успешном выполнении возвращает код успеха
|
||||||
@ -128,12 +103,13 @@
|
|||||||
|
|
||||||
// проверка каталога
|
// проверка каталога
|
||||||
Если НЕ РепозиторийGit.ЭтоРепозиторий() Тогда
|
Если НЕ РепозиторийGit.ЭтоРепозиторий() Тогда
|
||||||
|
|
||||||
Лог.Информация("Каталог '%1' не является репозиторием git", КаталогРепозитория);
|
Лог.Информация("Каталог '%1' не является репозиторием git", КаталогРепозитория);
|
||||||
Возврат;
|
Возврат;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
РепозиторийGit.УстановитьНастройку("core.quotePath", "false", РежимУстановкиНастроекGit.Локально); // решение проблемы с кириллическими путями
|
|
||||||
|
// локальная настройка Git для корректного отображения кириллических путей
|
||||||
|
РепозиторийGit.УстановитьНастройку("core.quotePath", "false", РежимУстановкиНастроекGit.Локально);
|
||||||
|
|
||||||
// установка
|
// установка
|
||||||
КаталогGitHook = ОбъединитьПути(КаталогРепозитория, ".git", "hooks");
|
КаталогGitHook = ОбъединитьПути(КаталогРепозитория, ".git", "hooks");
|
||||||
ФайлКаталогGitHook = Новый Файл(КаталогGitHook);
|
ФайлКаталогGitHook = Новый Файл(КаталогGitHook);
|
||||||
@ -152,9 +128,7 @@
|
|||||||
ЭтоWindows = Найти(НРег(СисИнфо.ВерсияОС), "windows") > 0;
|
ЭтоWindows = Найти(НРег(СисИнфо.ВерсияОС), "windows") > 0;
|
||||||
|
|
||||||
Если НЕ ЭтоWindows Тогда
|
Если НЕ ЭтоWindows Тогда
|
||||||
|
|
||||||
ЗапуститьПриложение(СтрШаблон("chmod +x ""%1""", ФайлPrecommtHook));
|
ЗапуститьПриложение(СтрШаблон("chmod +x ""%1""", ФайлPrecommtHook));
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Лог.Информация("Pre-commit hook для %1 создан", КаталогРепозитория);
|
Лог.Информация("Pre-commit hook для %1 создан", КаталогРепозитория);
|
||||||
|
@ -20,24 +20,27 @@
|
|||||||
// По файлу определеяет тип сорируемого объекта и некоторые дополнительные данные
|
// По файлу определеяет тип сорируемого объекта и некоторые дополнительные данные
|
||||||
Функция ПоФайлу(АнализируемыйФайл) Экспорт
|
Функция ПоФайлу(АнализируемыйФайл) Экспорт
|
||||||
Описание = Новый Структура("Тип, Заимствованный, ЕДТ", Неизвестный, Ложь, Ложь);
|
Описание = Новый Структура("Тип, Заимствованный, ЕДТ", Неизвестный, Ложь, Ложь);
|
||||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
|
||||||
|
|
||||||
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл);
|
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл);
|
||||||
Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
|
Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
|
||||||
Описание.Тип = Конфигурация;
|
Описание.Тип = Конфигурация;
|
||||||
Описание.ЕДТ = ЭтоЕДТ;
|
Описание.ЕДТ = ЭтоЕДТ;
|
||||||
|
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда
|
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда
|
||||||
Описание.Тип = ОпределяемыйТип;
|
Описание.Тип = ОпределяемыйТип;
|
||||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл);
|
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл);
|
||||||
|
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда
|
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда
|
||||||
Описание.Тип = ПланОбмена;
|
Описание.Тип = ПланОбмена;
|
||||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл);
|
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл);
|
||||||
|
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда
|
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда
|
||||||
Описание.Тип = ФункциональнаяОпция;
|
Описание.Тип = ФункциональнаяОпция;
|
||||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл);
|
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл);
|
||||||
|
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда
|
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда
|
||||||
Описание.Тип = Подсистема;
|
Описание.Тип = Подсистема;
|
||||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
|
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
|
||||||
|
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Описание;
|
Возврат Описание;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user