1
0
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:
Максимов Валерий Валерьевич (000044217) 2024-11-18 20:48:56 +03:00
commit 14bbcaed53
3 changed files with 14 additions and 35 deletions

View File

@ -29,6 +29,8 @@
- для выполнения установки в конкретный репозиторий необходимо выполнить команду `precommit4onec install repo_name`
- для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r`
- если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"`
Для корректного отображения путей с кириллицей прекоммит установит настройку Git `core.quotePath` для локального репозитория.
После этого, при каждом коммите будет выполняться обработка файлов.

View File

@ -34,55 +34,38 @@
Лог = Приложение.ПолучитьЛог();
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
Если НЕ ЗначениеЗаполнено(КаталогРепозитория) Тогда
Лог.Ошибка("Для установки прекоммита надо указать каталог");
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
КонецЕсли;
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
Лог.Ошибка("Каталог репозитория '%1' не существует или это файл", КаталогРепозитория);
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
КонецЕсли;
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
КаталогИсходныхФайлов = "src";
КонецЕсли;
ПараметрыСоединенияСИБ = "";
РасположениеИБ = ПараметрыКоманды["-ibconnection"];
Если ЗначениеЗаполнено(РасположениеИБ) Тогда
ПараметрыСоединенияСИБИмяПользователя = "";
ПараметрыСоединенияСИБПарольПользователя = "";
ИмяПользователя = ПараметрыКоманды["-u"];
Если Не ПустаяСтрока(ИмяПользователя) Тогда
ПараметрыСоединенияСИБИмяПользователя = СтрШаблон(" -u ""%1""", ИмяПользователя);
ПарольПользователя = ПараметрыКоманды["-p"];
Если Не ПустаяСтрока(ПарольПользователя) Тогда
ПараметрыСоединенияСИБПарольПользователя = СтрШаблон(" -p ""%1""", ПарольПользователя);
КонецЕсли;
КонецЕсли;
ПараметрыСоединенияСИБ = СтрШаблон(" -ibconnection ""%1""%2%3", РасположениеИБ, ПараметрыСоединенияСИБИмяПользователя, ПараметрыСоединенияСИБПарольПользователя);
КонецЕсли;
КомандаЗапускаПриложения = Приложение.ИмяПродукта();
@ -91,29 +74,21 @@
КонецЕсли;
КомандаPrecommtHook = СтрШаблон("#!/bin/sh
|%1 precommit ./ -source-dir ""%2""%3", КомандаЗапускаПриложения, КаталогИсходныхФайлов, ПараметрыСоединенияСИБ);
|%1 precommit ./ -source-dir ""%2""%3", КомандаЗапускаПриложения, КаталогИсходныхФайлов, ПараметрыСоединенияСИБ);
Лог.Отладка("Команда pre-commit hook %2`%1`", КомандаPrecommtHook, Символы.ПС);
Если ПараметрыКоманды["-r"] Тогда
// установка во вложенные каталоги
Каталоги = НайтиФайлы(КаталогРепозитория, "*");
Для Каждого Каталог Из Каталоги Цикл
Если НЕ Каталог.ЭтоКаталог() Тогда
Продолжить;
КонецЕсли;
УстановитьПрекоммитВКаталогРепозитория(Каталог.ПолноеИмя, КомандаPrecommtHook);
КонецЦикла
КонецЦикла;
Иначе
УстановитьПрекоммитВКаталогРепозитория(КаталогРепозитория, КомандаPrecommtHook);
КонецЕсли;
// При успешном выполнении возвращает код успеха
@ -128,12 +103,13 @@
// проверка каталога
Если НЕ РепозиторийGit.ЭтоРепозиторий() Тогда
Лог.Информация("Каталог '%1' не является репозиторием git", КаталогРепозитория);
Возврат;
КонецЕсли;
РепозиторийGit.УстановитьНастройку("core.quotePath", "false", РежимУстановкиНастроекGit.Локально); // решение проблемы с кириллическими путями
// локальная настройка Git для корректного отображения кириллических путей
РепозиторийGit.УстановитьНастройку("core.quotePath", "false", РежимУстановкиНастроекGit.Локально);
// установка
КаталогGitHook = ОбъединитьПути(КаталогРепозитория, ".git", "hooks");
ФайлКаталогGitHook = Новый Файл(КаталогGitHook);
@ -152,9 +128,7 @@
ЭтоWindows = Найти(НРег(СисИнфо.ВерсияОС), "windows") > 0;
Если НЕ ЭтоWindows Тогда
ЗапуститьПриложение(СтрШаблон("chmod +x ""%1""", ФайлPrecommtHook));
КонецЕсли;
Лог.Информация("Pre-commit hook для %1 создан", КаталогРепозитория);

View File

@ -20,27 +20,30 @@
// По файлу определеяет тип сорируемого объекта и некоторые дополнительные данные
Функция ПоФайлу(АнализируемыйФайл) Экспорт
Описание = Новый Структура("Тип, Заимствованный, ЕДТ", Неизвестный, Ложь, Ложь);
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл);
Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
Описание.Тип = Конфигурация;
Описание.ЕДТ = ЭтоЕДТ;
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда
Описание.Тип = ОпределяемыйТип;
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл);
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда
Описание.Тип = ПланОбмена;
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл);
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда
Описание.Тип = ФункциональнаяОпция;
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл);
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда
Описание.Тип = Подсистема;
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
КонецЕсли;
Возврат Описание;
Возврат Описание;
КонецФункции
Конфигурация = "Конфигурация";