You've already forked precommit4onec
mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-07-17 01:32:39 +02:00
- Обновлены тесты
- доработана прекоммит - исправлен конфигурационный файл
This commit is contained in:
32
features/Конфигурирование.feature
Normal file
32
features/Конфигурирование.feature
Normal file
@ -0,0 +1,32 @@
|
||||
# language: ru
|
||||
|
||||
Функциональность: Настройка конфигурации прекоммита
|
||||
|
||||
Как разработчик
|
||||
Я хочу иметь возможность изменять настройки precommit4onec
|
||||
Чтобы автоматически выполнять обработку исходников перед фиксацией изменений в репозитории
|
||||
|
||||
Сценарий: Печать текущих настроек precommit4onec
|
||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
||||
Тогда Код возврата команды "oscript" равен 0
|
||||
И Я сообщаю вывод команды "oscript"
|
||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.1"
|
||||
И Вывод команды "oscript" содержит "Установленные настройки:"
|
||||
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
||||
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
||||
И Вывод команды "oscript" содержит "ГлобальныеСценарии ="
|
||||
|
||||
Сценарий: Сброс настроек к значениям по умолчанию
|
||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global -reset"
|
||||
Тогда Код возврата команды "oscript" равен 0
|
||||
И Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
||||
И Код возврата команды "oscript" равен 0
|
||||
И Я сообщаю вывод команды "oscript"
|
||||
И Вывод команды "oscript" содержит
|
||||
"""
|
||||
precommit4onec v1.0.1
|
||||
Установленные настройки:
|
||||
ИспользоватьСценарииРепозитория = Нет
|
||||
КаталогЛокальныхСценариев =
|
||||
ГлобальныеСценарии = РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os
|
||||
"""
|
@ -28,6 +28,7 @@
|
||||
version - Выводит версию приложения
|
||||
precommit - Выполняет сценарии precommit
|
||||
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
||||
configure - Выполняет настройку репозитория
|
||||
"""
|
||||
И Код возврата команды "oscript" равен 0
|
||||
|
||||
@ -41,5 +42,6 @@
|
||||
version - Выводит версию приложения
|
||||
precommit - Выполняет сценарии precommit
|
||||
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
||||
configure - Выполняет настройку репозитория
|
||||
"""
|
||||
И Код возврата команды "oscript" равен 5
|
||||
|
@ -14,7 +14,7 @@
|
||||
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий1"
|
||||
И я создаю новый репозиторий "rep2" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий2"
|
||||
|
||||
Сценарий: Установка precommi4onec в репозиторий
|
||||
Сценарий: Установка precommit4onec в репозиторий
|
||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
||||
Тогда Код возврата команды "oscript" равен 0
|
||||
И Я сообщаю вывод команды "oscript"
|
||||
@ -22,14 +22,14 @@
|
||||
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||
|
||||
Сценарий: precommi4onec не устанавливается в пустой каталог
|
||||
Сценарий: precommit4onec не устанавливается в пустой каталог
|
||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
||||
Тогда Код возврата команды "oscript" равен 0
|
||||
И Я сообщаю вывод команды "oscript"
|
||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.1"
|
||||
И Вывод команды "oscript" содержит "не является репозиторием git"
|
||||
|
||||
Сценарий: Установка precommi4onec во вложенные каталоги
|
||||
Сценарий: Установка precommit4onec во вложенные каталоги
|
||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
||||
Тогда Код возврата команды "oscript" равен 0
|
||||
И Я сообщаю вывод команды "oscript"
|
||||
|
@ -32,8 +32,6 @@
|
||||
|
||||
Лог = Приложение.ПолучитьЛог();
|
||||
|
||||
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев());
|
||||
|
||||
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
||||
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
||||
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
||||
@ -43,6 +41,9 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
||||
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
||||
|
||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||
|
||||
@ -167,10 +168,56 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев)
|
||||
Процедура ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, УправлениеНастройками, КаталогРепозитория)
|
||||
|
||||
СценарииОбработки = Новый Массив;
|
||||
ФайлыСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||
ФайлыГлобальныхСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||
ФайлыЛокальныхСценариев = Новый Массив;
|
||||
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||
|
||||
Если НЕ УправлениеНастройками.ЭтоНовый() Тогда
|
||||
|
||||
Лог.Информация("Читаем настройки");
|
||||
ИменаЗагружаемыхСценариев = УправлениеНастройками.Настройка("Precommt4onecСценарии\ГлобальныеСценарии");
|
||||
Если УправлениеНастройками.Настройка("Precommt4onecСценарии\ИспользоватьСценарииРепозитория") Тогда
|
||||
|
||||
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||
|
||||
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||
|
||||
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||
|
||||
Иначе
|
||||
|
||||
ФайлыЛокальныхСценариев = НайтиФайлы(ФайлПутьКЛокальнымСценариям.ПолноеИмя, "*.os");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыГлобальныхСценариев, ИменаЗагружаемыхСценариев);
|
||||
ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыЛокальныхСценариев);
|
||||
|
||||
Если СценарииОбработки.Количество() = 0 Тогда
|
||||
|
||||
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыСценариев, Знач ИменаЗагружаемыхСценариев = Неопределено)
|
||||
|
||||
Если ИменаЗагружаемыхСценариев = Неопределено Тогда
|
||||
|
||||
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||
|
||||
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||
@ -179,6 +226,12 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ИменаЗагружаемыхСценариев.Количество() И НЕ ИменаЗагружаемыхСценариев.Найти(ФайлСценария.Имя) Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
|
||||
СценарийОбработки = ЗагрузитьСценарий(ФайлСценария.ПолноеИмя);
|
||||
@ -193,10 +246,4 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если СценарииОбработки.Количество() = 0 Тогда
|
||||
|
||||
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"Precommt4onecСценарии": {
|
||||
"ИспользоватьСценарииРепозитория": true,
|
||||
"КаталогЛокальныхСценариев": "src\\d",
|
||||
"ИспользоватьСценарииРепозитория": false,
|
||||
"КаталогЛокальныхСценариев": "",
|
||||
"ГлобальныеСценарии": [
|
||||
"РазборОбычныхФормНаИсходники.os",
|
||||
"РазборОтчетовОбработокРасширений.os"
|
||||
|
Reference in New Issue
Block a user