Skip to content

Commit

Permalink
Merge pull request #51 from khorevaa/develop
Browse files Browse the repository at this point in the history
release 1.4.0
  • Loading branch information
khorevaa authored Jun 7, 2021
2 parents d748025 + 09e7e9f commit b0e1328
Show file tree
Hide file tree
Showing 2 changed files with 163 additions and 1 deletion.
3 changes: 2 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
КонецПроцедуры

Описание.Имя("gitsync-plugins")
.Версия("1.3.0")
.Версия("1.4.0")
.Автор("Khorev A.A. and SilverBulleters")
.АдресАвтора("khorevaa@gmail.com,help@silverbulleters.org")
.Описание("Набор предустановленных плагинов для gitsync")
Expand All @@ -41,4 +41,5 @@
.ОпределяетКласс("Плагин_СнятияСПоддержки", "src/Классы/disableSupport.os")
.ОпределяетКласс("Плагин_СинхронизацииСУдаленнымРепозиторием", "src/Классы/syncRemote.os")
.ОпределяетКласс("Плагин_ВыгрузкаВФорматеEDT", "src/Классы/edtExport.os")
.ОпределяетКласс("Плагин_ЗаменаАвторов", "src/Классы/replaceAuthors.os")
;
161 changes: 161 additions & 0 deletions src/Классы/replaceAuthors.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
#Использовать logos

Перем Лог;
Перем Обработчик;
Перем МеткаЗамены;
Перем АвторыДляДополнения;

#Область Интерфейс_плагина

// Возвращает версию плагина
//
// Возвращаемое значение:
// Строка - текущая версия плагина
//
Функция Версия() Экспорт
Возврат "1.0.0";
КонецФункции

// Возвращает приоритет выполнения плагина
//
// Возвращаемое значение:
// Число - приоритет выполнения плагина
//
Функция Приоритет() Экспорт
Возврат 0;
КонецФункции

// Возвращает описание плагина
// Возвращает описание плагина
//
// Возвращаемое значение:
// Строка - описание функциональности плагина
//
Функция Описание() Экспорт
Возврат "Плагин добавляет функциональность замены автора коммита";
КонецФункции

// Возвращает подробную справку к плагину
//
// Возвращаемое значение:
// Строка - подробная справка для плагина
//
Функция Справка() Экспорт

ТекстСправки =
"Плагин позволяет заменить автора коммита в git.
|
|Для замены необходимо при помещении версии хранилища добавить в комментарий к версии строку:
|
| --GitSyncAuthor НовыйАвтор
|
|НовыйАвтор должен быть указан в файле AUTHORS, наличие в хранилище не обязательно.
|
|При коммите изменений в git будет выполнена замена автора версии хранилища.
|
|Также будет удалена строка с командой замены из комментария коммита.";

Возврат ТекстСправки;

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

// Возвращает имя плагина
//
// Возвращаемое значение:
// Строка - имя плагина при подключении
//
Функция Имя() Экспорт
Возврат "replace-authors";
КонецФункции

// Возвращает имя лога плагина
//
// Возвращаемое значение:
// Строка - имя лога плагина
//
Функция ИмяЛога() Экспорт
Возврат "oscript.lib.gitsync.plugins.replace-authors";
КонецФункции

#КонецОбласти

#Область Подписки_на_события

Процедура ПриАктивизации(СтандартныйОбработчик) Экспорт

Лог = Логирование.ПолучитьЛог(ИмяЛога());

Лог.Отладка("Активизация плагина <%1>", Имя());
Обработчик = СтандартныйОбработчик;

МеткаЗамены = "--GitSyncAuthor ";

АвторыДляДополнения = Новый Массив;

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

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

Лог.Отладка("Начата работа плагина <%1>", Имя());

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

Процедура ПослеПолученияТаблицыВерсий(ТаблицаВерсий, ПутьКХранилищу) Экспорт

Для Каждого СтрокаВерсии Из ТаблицаВерсий Цикл

СтрокВКомментарии = СтрЧислоСтрок(СтрокаВерсии.Комментарий);

Для Счетчик = 1 По СтрокВКомментарии Цикл

СтрокаКомментария = СтрПолучитьСтроку(СтрокаВерсии.Комментарий, Счетчик);

НужноЗаменитьАвтора = СтрНайти(СтрокаКомментария, МеткаЗамены) > 0;

Если НужноЗаменитьАвтора Тогда

НовыйАвтор = СтрЗаменить(СтрокаКомментария, МеткаЗамены, "");
НовыйАвтор = СокрЛП(НовыйАвтор);

СтарыйАвтор = СтрокаВерсии.Автор;

СтрокаВерсии.Автор = НовыйАвтор;
СтрокаВерсии.ГУИД_Автора = НовыйАвтор;

СтрокаВерсии.Комментарий = СтрЗаменить(СтрокаВерсии.Комментарий, СтрокаКомментария, "");

Лог.Информация(
"Для версии хранилища <%1> заменен автор с <%2> на <%3>",
СтрокаВерсии.НомерВерсии,
СтарыйАвтор,
НовыйАвтор);

АвторыДляДополнения.Добавить(НовыйАвтор);

КонецЕсли;

КонецЦикла;

КонецЦикла;

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

Процедура ПослеПолученияТаблицыПользователей(ТаблицаПользователей, ПутьКХранилищу) Экспорт

Для каждого Автор Из АвторыДляДополнения Цикл

НужноДобавитьВТаблицуПользователей = ТаблицаПользователей.Найти(Автор, "ГУИД_Автора") = Неопределено;

Если НужноДобавитьВТаблицуПользователей Тогда

НовыйПользователь = ТаблицаПользователей.Добавить();
НовыйПользователь.Автор = Автор;
НовыйПользователь.ГУИД_Автора = Автор;

КонецЕсли;

КонецЦикла;

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

#КонецОбласти

0 comments on commit b0e1328

Please sign in to comment.