Skip to content

Commit b0e1328

Browse files
authored
Merge pull request #51 from khorevaa/develop
release 1.4.0
2 parents d748025 + 09e7e9f commit b0e1328

File tree

2 files changed

+163
-1
lines changed

2 files changed

+163
-1
lines changed

packagedef

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
КонецПроцедуры
2323

2424
Описание.Имя("gitsync-plugins")
25-
.Версия("1.3.0")
25+
.Версия("1.4.0")
2626
.Автор("Khorev A.A. and SilverBulleters")
2727
.АдресАвтора("[email protected],[email protected]")
2828
.Описание("Набор предустановленных плагинов для gitsync")
@@ -41,4 +41,5 @@
4141
.ОпределяетКласс("Плагин_СнятияСПоддержки", "src/Классы/disableSupport.os")
4242
.ОпределяетКласс("Плагин_СинхронизацииСУдаленнымРепозиторием", "src/Классы/syncRemote.os")
4343
.ОпределяетКласс("Плагин_ВыгрузкаВФорматеEDT", "src/Классы/edtExport.os")
44+
.ОпределяетКласс("Плагин_ЗаменаАвторов", "src/Классы/replaceAuthors.os")
4445
;

src/Классы/replaceAuthors.os

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
#Использовать logos
2+
3+
Перем Лог;
4+
Перем Обработчик;
5+
Перем МеткаЗамены;
6+
Перем АвторыДляДополнения;
7+
8+
#Область Интерфейс_плагина
9+
10+
// Возвращает версию плагина
11+
//
12+
// Возвращаемое значение:
13+
// Строка - текущая версия плагина
14+
//
15+
Функция Версия() Экспорт
16+
Возврат "1.0.0";
17+
КонецФункции
18+
19+
// Возвращает приоритет выполнения плагина
20+
//
21+
// Возвращаемое значение:
22+
// Число - приоритет выполнения плагина
23+
//
24+
Функция Приоритет() Экспорт
25+
Возврат 0;
26+
КонецФункции
27+
28+
// Возвращает описание плагина
29+
// Возвращает описание плагина
30+
//
31+
// Возвращаемое значение:
32+
// Строка - описание функциональности плагина
33+
//
34+
Функция Описание() Экспорт
35+
Возврат "Плагин добавляет функциональность замены автора коммита";
36+
КонецФункции
37+
38+
// Возвращает подробную справку к плагину
39+
//
40+
// Возвращаемое значение:
41+
// Строка - подробная справка для плагина
42+
//
43+
Функция Справка() Экспорт
44+
45+
ТекстСправки =
46+
"Плагин позволяет заменить автора коммита в git.
47+
|
48+
|Для замены необходимо при помещении версии хранилища добавить в комментарий к версии строку:
49+
|
50+
| --GitSyncAuthor НовыйАвтор
51+
|
52+
|НовыйАвтор должен быть указан в файле AUTHORS, наличие в хранилище не обязательно.
53+
|
54+
|При коммите изменений в git будет выполнена замена автора версии хранилища.
55+
|
56+
|Также будет удалена строка с командой замены из комментария коммита.";
57+
58+
Возврат ТекстСправки;
59+
60+
КонецФункции
61+
62+
// Возвращает имя плагина
63+
//
64+
// Возвращаемое значение:
65+
// Строка - имя плагина при подключении
66+
//
67+
Функция Имя() Экспорт
68+
Возврат "replace-authors";
69+
КонецФункции
70+
71+
// Возвращает имя лога плагина
72+
//
73+
// Возвращаемое значение:
74+
// Строка - имя лога плагина
75+
//
76+
Функция ИмяЛога() Экспорт
77+
Возврат "oscript.lib.gitsync.plugins.replace-authors";
78+
КонецФункции
79+
80+
#КонецОбласти
81+
82+
#Область Подписки_на_события
83+
84+
Процедура ПриАктивизации(СтандартныйОбработчик) Экспорт
85+
86+
Лог = Логирование.ПолучитьЛог(ИмяЛога());
87+
88+
Лог.Отладка("Активизация плагина <%1>", Имя());
89+
Обработчик = СтандартныйОбработчик;
90+
91+
МеткаЗамены = "--GitSyncAuthor ";
92+
93+
АвторыДляДополнения = Новый Массив;
94+
95+
КонецПроцедуры
96+
97+
Процедура ПередНачаломВыполнения(ПутьКХранилищу, ВходящийКаталогРабочейКопии) Экспорт
98+
99+
Лог.Отладка("Начата работа плагина <%1>", Имя());
100+
101+
КонецПроцедуры
102+
103+
Процедура ПослеПолученияТаблицыВерсий(ТаблицаВерсий, ПутьКХранилищу) Экспорт
104+
105+
Для Каждого СтрокаВерсии Из ТаблицаВерсий Цикл
106+
107+
СтрокВКомментарии = СтрЧислоСтрок(СтрокаВерсии.Комментарий);
108+
109+
Для Счетчик = 1 По СтрокВКомментарии Цикл
110+
111+
СтрокаКомментария = СтрПолучитьСтроку(СтрокаВерсии.Комментарий, Счетчик);
112+
113+
НужноЗаменитьАвтора = СтрНайти(СтрокаКомментария, МеткаЗамены) > 0;
114+
115+
Если НужноЗаменитьАвтора Тогда
116+
117+
НовыйАвтор = СтрЗаменить(СтрокаКомментария, МеткаЗамены, "");
118+
НовыйАвтор = СокрЛП(НовыйАвтор);
119+
120+
СтарыйАвтор = СтрокаВерсии.Автор;
121+
122+
СтрокаВерсии.Автор = НовыйАвтор;
123+
СтрокаВерсии.ГУИД_Автора = НовыйАвтор;
124+
125+
СтрокаВерсии.Комментарий = СтрЗаменить(СтрокаВерсии.Комментарий, СтрокаКомментария, "");
126+
127+
Лог.Информация(
128+
"Для версии хранилища <%1> заменен автор с <%2> на <%3>",
129+
СтрокаВерсии.НомерВерсии,
130+
СтарыйАвтор,
131+
НовыйАвтор);
132+
133+
АвторыДляДополнения.Добавить(НовыйАвтор);
134+
135+
КонецЕсли;
136+
137+
КонецЦикла;
138+
139+
КонецЦикла;
140+
141+
КонецПроцедуры
142+
143+
Процедура ПослеПолученияТаблицыПользователей(ТаблицаПользователей, ПутьКХранилищу) Экспорт
144+
145+
Для каждого Автор Из АвторыДляДополнения Цикл
146+
147+
НужноДобавитьВТаблицуПользователей = ТаблицаПользователей.Найти(Автор, "ГУИД_Автора") = Неопределено;
148+
149+
Если НужноДобавитьВТаблицуПользователей Тогда
150+
151+
НовыйПользователь = ТаблицаПользователей.Добавить();
152+
НовыйПользователь.Автор = Автор;
153+
НовыйПользователь.ГУИД_Автора = Автор;
154+
155+
КонецЕсли;
156+
157+
КонецЦикла;
158+
159+
КонецПроцедуры
160+
161+
#КонецОбласти

0 commit comments

Comments
 (0)