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
@ -29,6 +29,8 @@
|
||||
- для выполнения установки в конкретный репозиторий необходимо выполнить команду `precommit4onec install repo_name`
|
||||
- для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r`
|
||||
- если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"`
|
||||
|
||||
Для корректного отображения путей с кириллицей прекоммит установит настройку Git `core.quotePath` для локального репозитория.
|
||||
|
||||
После этого, при каждом коммите будет выполняться обработка файлов.
|
||||
|
||||
|
@ -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 создан", КаталогРепозитория);
|
||||
|
@ -20,27 +20,30 @@
|
||||
// По файлу определеяет тип сорируемого объекта и некоторые дополнительные данные
|
||||
Функция ПоФайлу(АнализируемыйФайл) Экспорт
|
||||
Описание = Новый Структура("Тип, Заимствованный, ЕДТ", Неизвестный, Ложь, Ложь);
|
||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||
|
||||
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияКонфигурацииEDT(АнализируемыйФайл);
|
||||
Если ЭтоЕДТ Или ТипыФайлов.ЭтоФайлОписанияКонфигурации(АнализируемыйФайл) Тогда
|
||||
Описание.Тип = Конфигурация;
|
||||
Описание.ЕДТ = ЭтоЕДТ;
|
||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипа(АнализируемыйФайл) Тогда
|
||||
Описание.Тип = ОпределяемыйТип;
|
||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияОпределяемогоТипаEDT(АнализируемыйФайл);
|
||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПланаОбмена(АнализируемыйФайл) Тогда
|
||||
Описание.Тип = ПланОбмена;
|
||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПланаОбменаEDT(АнализируемыйФайл);
|
||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияФункциональнойОпции(АнализируемыйФайл) Тогда
|
||||
Описание.Тип = ФункциональнаяОпция;
|
||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияФункциональнойОпцииEDT(АнализируемыйФайл);
|
||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||
ИначеЕсли ТипыФайлов.ЭтоФайлОписанияПодсистемы(АнализируемыйФайл) Тогда
|
||||
Описание.Тип = Подсистема;
|
||||
Описание.ЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
|
||||
Описание.Заимствованный = ТипыФайлов.ЭтоФайлЗаимствованногоОбъектаРасширения(АнализируемыйФайл);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Описание;
|
||||
Возврат Описание;
|
||||
КонецФункции
|
||||
|
||||
Конфигурация = "Конфигурация";
|
||||
|
Loading…
x
Reference in New Issue
Block a user