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 - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
precommit - Выполняет сценарии precommit
|
precommit - Выполняет сценарии precommit
|
||||||
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
||||||
|
configure - Выполняет настройку репозитория
|
||||||
"""
|
"""
|
||||||
И Код возврата команды "oscript" равен 0
|
И Код возврата команды "oscript" равен 0
|
||||||
|
|
||||||
@ -41,5 +42,6 @@
|
|||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
precommit - Выполняет сценарии precommit
|
precommit - Выполняет сценарии precommit
|
||||||
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
||||||
|
configure - Выполняет настройку репозитория
|
||||||
"""
|
"""
|
||||||
И Код возврата команды "oscript" равен 5
|
И Код возврата команды "oscript" равен 5
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий1"
|
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий1"
|
||||||
И я создаю новый репозиторий "rep2" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий2"
|
И я создаю новый репозиторий "rep2" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий2"
|
||||||
|
|
||||||
Сценарий: Установка precommi4onec в репозиторий
|
Сценарий: Установка precommit4onec в репозиторий
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
@ -22,14 +22,14 @@
|
|||||||
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
|
|
||||||
Сценарий: precommi4onec не устанавливается в пустой каталог
|
Сценарий: precommit4onec не устанавливается в пустой каталог
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.1"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.1"
|
||||||
И Вывод команды "oscript" содержит "не является репозиторием git"
|
И Вывод команды "oscript" содержит "не является репозиторием git"
|
||||||
|
|
||||||
Сценарий: Установка precommi4onec во вложенные каталоги
|
Сценарий: Установка precommit4onec во вложенные каталоги
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
|
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
|
||||||
|
|
||||||
// Добавление параметров команды
|
// Добавление параметров команды
|
||||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "КаталогРепозитория", "Каталог анализируемого репозитория");
|
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "КаталогРепозитория", "Каталог анализируемого репозитория");
|
||||||
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-source-dir", "Каталог расположения исходных файлов относительно корня репозитория. По умолчанию <src>");
|
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-source-dir", "Каталог расположения исходных файлов относительно корня репозитория. По умолчанию <src>");
|
||||||
@ -31,77 +31,78 @@
|
|||||||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
|
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
|
||||||
|
|
||||||
Лог = Приложение.ПолучитьЛог();
|
Лог = Приложение.ПолучитьЛог();
|
||||||
|
|
||||||
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев());
|
|
||||||
|
|
||||||
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
||||||
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
||||||
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
||||||
|
|
||||||
Лог.Ошибка("Каталог репозитория '%1' не существует или это файл", КаталогРепозитория);
|
Лог.Ошибка("Каталог репозитория '%1' не существует или это файл", КаталогРепозитория);
|
||||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
||||||
|
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
||||||
|
|
||||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||||
|
|
||||||
КаталогИсходныхФайлов = "src";
|
КаталогИсходныхФайлов = "src";
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, КаталогИсходныхФайлов);
|
ТекущийКаталогИсходныхФайлов = ОбъединитьПути(КаталогРепозитория, КаталогИсходныхФайлов);
|
||||||
ФайлТекущийКаталогИсходныхФайлов = Новый Файл(ТекущийКаталогИсходныхФайлов);
|
ФайлТекущийКаталогИсходныхФайлов = Новый Файл(ТекущийКаталогИсходныхФайлов);
|
||||||
ТекущийКаталогИсходныхФайлов = ФайлТекущийКаталогИсходныхФайлов.ПолноеИмя;
|
ТекущийКаталогИсходныхФайлов = ФайлТекущийКаталогИсходныхФайлов.ПолноеИмя;
|
||||||
Если НЕ ФайлТекущийКаталогИсходныхФайлов.Существует() Тогда
|
Если НЕ ФайлТекущийКаталогИсходныхФайлов.Существует() Тогда
|
||||||
|
|
||||||
СоздатьКаталог(ТекущийКаталогИсходныхФайлов);
|
СоздатьКаталог(ТекущийКаталогИсходныхФайлов);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КаталогРепозитория = ФайлКаталогРепозитория.ПолноеИмя;
|
КаталогРепозитория = ФайлКаталогРепозитория.ПолноеИмя;
|
||||||
РепозиторийGit = Новый ГитРепозиторий();
|
РепозиторийGit = Новый ГитРепозиторий();
|
||||||
РепозиторийGit.УстановитьРабочийКаталог(КаталогРепозитория);
|
РепозиторийGit.УстановитьРабочийКаталог(КаталогРепозитория);
|
||||||
|
|
||||||
Если НЕ РепозиторийGit.ЭтоРепозиторий() Тогда
|
|
||||||
|
|
||||||
|
Если НЕ РепозиторийGit.ЭтоРепозиторий() Тогда
|
||||||
|
|
||||||
Лог.Ошибка("Каталог '%1' не является репозиторием git", КаталогРепозитория);
|
Лог.Ошибка("Каталог '%1' не является репозиторием git", КаталогРепозитория);
|
||||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЖурналИзменений = ПолучитьЖурналИзменений();
|
ЖурналИзменений = ПолучитьЖурналИзменений();
|
||||||
|
|
||||||
Ит = 0;
|
Ит = 0;
|
||||||
ПараметрыОбработки = Новый Структура("Лог, ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория", Лог, Новый Массив, Новый Массив, КаталогРепозитория);
|
ПараметрыОбработки = Новый Структура("Лог, ФайлыДляПостОбработки, ИзмененныеКаталоги, КаталогРепозитория", Лог, Новый Массив, Новый Массив, КаталогРепозитория);
|
||||||
Пока Ит < ЖурналИзменений.Количество() Цикл
|
Пока Ит < ЖурналИзменений.Количество() Цикл
|
||||||
|
|
||||||
АнализируемыйФайл = Новый Файл(ОбъединитьПути(КаталогРепозитория, ЖурналИзменений[Ит].ИмяФайла));
|
АнализируемыйФайл = Новый Файл(ОбъединитьПути(КаталогРепозитория, ЖурналИзменений[Ит].ИмяФайла));
|
||||||
Лог.Отладка("Анализируется файл <%1>", АнализируемыйФайл.Имя);
|
Лог.Отладка("Анализируется файл <%1>", АнализируемыйФайл.Имя);
|
||||||
|
|
||||||
Для Каждого СценарийОбработки Из СценарииОбработки Цикл
|
Для Каждого СценарийОбработки Из СценарииОбработки Цикл
|
||||||
|
|
||||||
ФайлОбработан = СценарийОбработки.Сценарий.ОбработатьФайл(АнализируемыйФайл, ТекущийКаталогИсходныхФайлов, ПараметрыОбработки);
|
ФайлОбработан = СценарийОбработки.Сценарий.ОбработатьФайл(АнализируемыйФайл, ТекущийКаталогИсходныхФайлов, ПараметрыОбработки);
|
||||||
Если ФайлОбработан Тогда
|
Если ФайлОбработан Тогда
|
||||||
|
|
||||||
Для каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл
|
Для каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл
|
||||||
|
|
||||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", СтрЗаменить(ФайлДляДопОбработки, КаталогРепозитория, ""), ВариантИзмененийФайловGit.Изменен));
|
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", СтрЗаменить(ФайлДляДопОбработки, КаталогРепозитория, ""), ВариантИзмененийФайловGit.Изменен));
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ПараметрыОбработки.ФайлыДляПостОбработки.Очистить();
|
ПараметрыОбработки.ФайлыДляПостОбработки.Очистить();
|
||||||
|
|
||||||
Продолжить;
|
Продолжить;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Ит = Ит + 1;
|
Ит = Ит + 1;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
// измененные каталоги необходимо добавить в индекс
|
// измененные каталоги необходимо добавить в индекс
|
||||||
Лог.Отладка("Добавление измененных каталогов в индекс git");
|
Лог.Отладка("Добавление измененных каталогов в индекс git");
|
||||||
Для Каждого Каталог Из ПараметрыОбработки.ИзмененныеКаталоги Цикл
|
Для Каждого Каталог Из ПараметрыОбработки.ИзмененныеКаталоги Цикл
|
||||||
@ -118,7 +119,7 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
Функция ПолучитьЖурналИзменений()
|
Функция ПолучитьЖурналИзменений()
|
||||||
|
|
||||||
ПараметрыКомандыGit = Новый Массив;
|
ПараметрыКомандыGit = Новый Массив;
|
||||||
ПараметрыКомандыGit.Добавить("diff-index --name-status --cached HEAD");
|
ПараметрыКомандыGit.Добавить("diff-index --name-status --cached HEAD");
|
||||||
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
||||||
@ -127,35 +128,35 @@
|
|||||||
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit);
|
||||||
РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды();
|
РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды();
|
||||||
СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС);
|
СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС);
|
||||||
|
|
||||||
ЖурналИзменений = Новый Массив;
|
ЖурналИзменений = Новый Массив;
|
||||||
Для Каждого СтрокаВывода Из СтрокиВывода Цикл
|
Для Каждого СтрокаВывода Из СтрокиВывода Цикл
|
||||||
|
|
||||||
Лог.Отладка(" <%1>", СтрокаВывода);
|
Лог.Отладка(" <%1>", СтрокаВывода);
|
||||||
СтрокаВывода = СокрЛП(СтрокаВывода);
|
СтрокаВывода = СокрЛП(СтрокаВывода);
|
||||||
ПозицияПробела = СтрНайти(СтрокаВывода, " ");
|
ПозицияПробела = СтрНайти(СтрокаВывода, " ");
|
||||||
СимволИзменения = Лев(СтрокаВывода, 1);
|
СимволИзменения = Лев(СтрокаВывода, 1);
|
||||||
Если СимволИзменения = "?" Тогда
|
Если СимволИзменения = "?" Тогда
|
||||||
|
|
||||||
Продолжить;
|
Продолжить;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);
|
||||||
|
|
||||||
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
ИмяФайла = СокрЛП(СтрЗаменить(Сред(СтрокаВывода, ПозицияПробела + 1), """", ""));
|
||||||
|
|
||||||
Если ТипИзменения = ВариантИзмененийФайловGit.Переименован Тогда
|
Если ТипИзменения = ВариантИзмененийФайловGit.Переименован Тогда
|
||||||
|
|
||||||
// это два события - удален и добавлен
|
// это два события - удален и добавлен
|
||||||
ПозицияСтрелки = СтрНайти(ИмяФайла, "->");
|
ПозицияСтрелки = СтрНайти(ИмяФайла, "->");
|
||||||
ИмяФайлаУдален = СокрЛП(Лев(ИмяФайла, ПозицияСтрелки - 1));
|
ИмяФайлаУдален = СокрЛП(Лев(ИмяФайла, ПозицияСтрелки - 1));
|
||||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален));
|
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален));
|
||||||
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален);
|
Лог.Отладка(" В журнале git %2 файл <%1>", ИмяФайлаУдален, ВариантИзмененийФайловGit.Удален);
|
||||||
|
|
||||||
ИмяФайла = СокрЛП(Сред(ИмяФайла, ПозицияСтрелки + 2));
|
ИмяФайла = СокрЛП(Сред(ИмяФайла, ПозицияСтрелки + 2));
|
||||||
ТипИзменения = ВариантИзмененийФайловGit.Добавлен;
|
ТипИзменения = ВариантИзмененийФайловGit.Добавлен;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайла, ТипИзменения));
|
ЖурналИзменений.Добавить(Новый Структура("ИмяФайла, ТипИзменения", ИмяФайла, ТипИзменения));
|
||||||
@ -167,36 +168,82 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев)
|
Процедура ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, УправлениеНастройками, КаталогРепозитория)
|
||||||
|
|
||||||
СценарииОбработки = Новый Массив;
|
СценарииОбработки = Новый Массив;
|
||||||
ФайлыСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
ФайлыГлобальныхСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||||
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
ФайлыЛокальныхСценариев = Новый Массив;
|
||||||
|
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||||
|
|
||||||
|
Если НЕ УправлениеНастройками.ЭтоНовый() Тогда
|
||||||
|
|
||||||
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
Лог.Информация("Читаем настройки");
|
||||||
|
ИменаЗагружаемыхСценариев = УправлениеНастройками.Настройка("Precommt4onecСценарии\ГлобальныеСценарии");
|
||||||
Продолжить;
|
Если УправлениеНастройками.Настройка("Precommt4onecСценарии\ИспользоватьСценарииРепозитория") Тогда
|
||||||
|
|
||||||
|
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||||
|
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||||
|
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||||
|
|
||||||
|
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||||
|
|
||||||
|
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ФайлыЛокальныхСценариев = НайтиФайлы(ФайлПутьКЛокальнымСценариям.ПолноеИмя, "*.os");
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Попытка
|
КонецЕсли;
|
||||||
|
|
||||||
СценарийОбработки = ЗагрузитьСценарий(ФайлСценария.ПолноеИмя);
|
|
||||||
СценарииОбработки.Добавить(Новый Структура("ИмяСценария, Сценарий", СценарийОбработки.ИмяСценария(), СценарийОбработки));
|
|
||||||
|
|
||||||
Исключение
|
ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыГлобальныхСценариев, ИменаЗагружаемыхСценариев);
|
||||||
|
ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыЛокальныхСценариев);
|
||||||
Лог.Ошибка("Ошибка загрузки сценария %1: %2", ФайлСценария.ПолноеИмя, ОписаниеОшибки());
|
|
||||||
Продолжить;
|
|
||||||
|
|
||||||
КонецПопытки;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Если СценарииОбработки.Количество() = 0 Тогда
|
Если СценарииОбработки.Количество() = 0 Тогда
|
||||||
|
|
||||||
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыСценариев, Знач ИменаЗагружаемыхСценариев = Неопределено)
|
||||||
|
|
||||||
|
Если ИменаЗагружаемыхСценариев = Неопределено Тогда
|
||||||
|
|
||||||
|
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||||
|
|
||||||
|
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ИменаЗагружаемыхСценариев.Количество() И НЕ ИменаЗагружаемыхСценариев.Найти(ФайлСценария.Имя) Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
|
||||||
|
СценарийОбработки = ЗагрузитьСценарий(ФайлСценария.ПолноеИмя);
|
||||||
|
СценарииОбработки.Добавить(Новый Структура("ИмяСценария, Сценарий", СценарийОбработки.ИмяСценария(), СценарийОбработки));
|
||||||
|
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
Лог.Ошибка("Ошибка загрузки сценария %1: %2", ФайлСценария.ПолноеИмя, ОписаниеОшибки());
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"Precommt4onecСценарии": {
|
"Precommt4onecСценарии": {
|
||||||
"ИспользоватьСценарииРепозитория": true,
|
"ИспользоватьСценарииРепозитория": false,
|
||||||
"КаталогЛокальныхСценариев": "src\\d",
|
"КаталогЛокальныхСценариев": "",
|
||||||
"ГлобальныеСценарии": [
|
"ГлобальныеСценарии": [
|
||||||
"РазборОбычныхФормНаИсходники.os",
|
"РазборОбычныхФормНаИсходники.os",
|
||||||
"РазборОтчетовОбработокРасширений.os"
|
"РазборОтчетовОбработокРасширений.os"
|
||||||
|
Reference in New Issue
Block a user