Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 45 additions & 1 deletion src/Классы/smart-tags.os
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Перем ВерсияПлагина;
Перем Лог;
Перем Обработчик;
Перем КомандыПлагина;
Перем ПропускатьСуществующиеТеги;
Перем ПоследняяВерсияКонфигурации;
Перем ТекущаяВерсияКонфигурации;

Expand All @@ -20,6 +22,29 @@

КонецПроцедуры

Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации, Парсер) Экспорт

Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды);
Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда
Возврат;
КонецЕсли;

Лог.Отладка("Устанавливаю дополнительные параметры для команды %1", ИмяКоманды);

ПропускатьСуществующиеТеги = КлассРеализации.Опция("S skip-exists-tags", Ложь, "[*skip-exists-tags] флаг пропуска ошибок создания существующих тегов").Флаговый();

КонецПроцедуры

Процедура ПриПолученииПараметров(ПараметрыКоманды, ДополнительныеПараметры) Экспорт

ПропускатьСуществующиеТеги = ПараметрыКоманды["--skip-exists-tags"];

Если ПропускатьСуществующиеТеги = Неопределено Тогда
ПропускатьСуществующиеТеги = Ложь;
КонецЕсли;

КонецПроцедуры

Процедура ПередНачаломВыполнения(ПутьКХранилищу, КаталогРабочейКопии, URLРепозитория, ИмяВетки) Экспорт

ПоследняяВерсияКонфигурации = ПрочитатьВерсиюИзИсходников(КаталогРабочейКопии);
Expand Down Expand Up @@ -48,7 +73,18 @@
ПараметрыКоманды.Добавить("tag");
ПараметрыКоманды.Добавить(Строка(ТекущаяВерсияКонфигурации));

ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
Попытка
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
Исключение
ТекстОшибки = ОписаниеОшибки();
Если ПропускатьСуществующиеТеги
И ЭтоОшибкаТегУжеСуществует(ТекстОшибки, ТекущаяВерсияКонфигурации) Тогда
Лог.Ошибка(ТекстОшибки);
Иначе
ВызватьИсключение ТекстОшибки;
КонецЕсли;
КонецПопытки;

ПоследняяВерсияКонфигурации = ТекущаяВерсияКонфигурации;

КонецЕсли;
Expand All @@ -68,6 +104,14 @@

КонецФункции // ПрочитатьВерсиюИзИсходников()

Функция ЭтоОшибкаТегУжеСуществует(ТекстОшибки, ТекущаяВерсияКонфигурации)

Возврат СтрНайти(
ТекстОшибки,
СтрШаблон("fatal: tag '%1' already exists", ТекущаяВерсияКонфигурации)) > 0;

КонецФункции

// Функция читает параметры конфигурации из каталога исходников
//
Функция ПолучитьПараметрыКонфигурацииИзИсходников(КаталогИсходныхФайлов)
Expand Down