Skip to content

Commit 5c34c92

Browse files
authored
Merge pull request #81 from arkuznetsov/develop
Добавлены плагины для использования ibcmd, удаления файла дампа изменений, удаления информации о поддержке.
2 parents 5ed03ef + 85a7956 commit 5c34c92

File tree

9 files changed

+1086
-15
lines changed

9 files changed

+1086
-15
lines changed

bin/v8unpack/v8unpack.exe

64 KB
Binary file not shown.

bin/v8unpack/zlib1.dll

58.5 KB
Binary file not shown.

packagedef

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,20 @@
66

77
ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(РабочийКаталог, "oscript_modules"));
88

9-
//Лог.Информация("Установка локальных зависимостей библиотек");
9+
Сообщить("Запаковка бинарных данных библиотек");
10+
КомандаOpm = Новый Команда;
11+
12+
КомандаOpm.УстановитьКоманду("opm");
13+
КомандаOpm.ДобавитьПараметр("run packdata ");
14+
КомандаOpm.ДобавитьЛогВыводаКоманды("task.build");
15+
16+
КодВозврата = КомандаOpm.Исполнить();
17+
18+
Если КодВозврата <> 0 Тогда
19+
ВызватьИсключение КомандаOpm.ПолучитьВывод();
20+
КонецЕсли;
21+
22+
Сообщить("Установка локальных зависимостей библиотек");
1023
КомандаOpm = Новый Команда;
1124

1225
КомандаOpm.УстановитьКоманду("opm");
@@ -16,7 +29,7 @@
1629
КодВозврата = КомандаOpm.Исполнить();
1730

1831
Если КодВозврата <> 0 Тогда
19-
ВызватьИсключение КомандаOpm.ПолучитьВывод();
32+
ВызватьИсключение КомандаOpm.ПолучитьВывод();
2033
КонецЕсли;
2134

2235
КонецПроцедуры
@@ -42,4 +55,7 @@
4255
.ОпределяетКласс("Плагин_СинхронизацииСУдаленнымРепозиторием", "src/Классы/syncRemote.os")
4356
.ОпределяетКласс("Плагин_ВыгрузкаВФорматеEDT", "src/Классы/edtExport.os")
4457
.ОпределяетКласс("Плагин_ЗаменаАвторов", "src/Классы/replaceAuthors.os")
58+
.ОпределяетКласс("Плагин_Ibcmd", "src/Классы/useIbcmd.os")
59+
.ОпределяетКласс("Плагин_DropConfigDump", "src/Классы/dropConfigDump.os")
60+
.ОпределяетКласс("Плагин_DropSupport", "src/Классы/dropSupport.os")
4561
;

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

Lines changed: 301 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,301 @@
1+
#Использовать logos
2+
#Использовать gitsync
3+
4+
Перем Лог; // Лог - объект протоколирования (logger)
5+
Перем Обработчик; // Команда - обработчик текущей команды gitsync
6+
Перем КомандыПлагина; // Массив из Строка - список команд к которым подключается текущий плагин
7+
Перем ТекущаяКоманда; // Строка - имя выполняемой команды gitsync
8+
9+
Перем ЗакоммититьФайлИгнорируемыхИзменений; // Булево - Истина - закоммитить файл .gitignore.
10+
11+
#Область Интерфейс_плагина
12+
13+
// Возвращает версию плагина
14+
//
15+
// Возвращаемое значение:
16+
// Строка - текущая версия плагина
17+
//
18+
Функция Версия() Экспорт
19+
Возврат "1.0.0";
20+
КонецФункции
21+
22+
// Возвращает приоритет выполнения плагина
23+
//
24+
// Возвращаемое значение:
25+
// Число - приоритет выполнения плагина
26+
//
27+
Функция Приоритет() Экспорт
28+
Возврат 0;
29+
КонецФункции
30+
31+
// Возвращает описание плагина
32+
//
33+
// Возвращаемое значение:
34+
// Строка - описание функциональности плагина
35+
//
36+
Функция Описание() Экспорт
37+
Возврат "Плагин отключает версионирование файла дампа версий объектов конфигурации (ConfigDumpInfo.xml)
38+
|и удаляет его после выгрузки конфигурации в файлы.";
39+
КонецФункции
40+
41+
// Возвращает подробную справку к плагину
42+
//
43+
// Возвращаемое значение:
44+
// Строка - подробная справка для плагина
45+
//
46+
Функция Справка() Экспорт
47+
Возврат "Плагин отключает версионирование файла дампа версий объектов конфигурации (ConfigDumpInfo.xml)
48+
|и удаляет его после выгрузки конфигурации в файлы.";
49+
КонецФункции
50+
51+
// Возвращает имя плагина
52+
//
53+
// Возвращаемое значение:
54+
// Строка - имя плагина при подключении
55+
//
56+
Функция Имя() Экспорт
57+
Возврат "drop-config-dump";
58+
КонецФункции
59+
60+
// Возвращает имя лога плагина
61+
//
62+
// Возвращаемое значение:
63+
// Строка - имя лога плагина
64+
//
65+
Функция ИмяЛога() Экспорт
66+
Возврат СтрШаблон("oscript.lib.gitsync.plugins.%1", Имя());
67+
КонецФункции
68+
69+
#КонецОбласти
70+
71+
#Область Подписки_на_события
72+
73+
Процедура ПриАктивизации(СтандартныйОбработчик) Экспорт
74+
75+
Обработчик = СтандартныйОбработчик;
76+
77+
Если НЕ (ВРег(ТекущаяКоманда) = "ALL"
78+
ИЛИ ВРег(ТекущаяКоманда) = "SYNC") Тогда
79+
Возврат;
80+
КонецЕсли;
81+
82+
МенеджерПлагинов = ПараметрыПриложения.МенеджерПлагинов();
83+
ИндексПлагинов = МенеджерПлагинов.ПолучитьИндексПлагинов();
84+
ОтключаемыеПлагины = ОтключаемыеПлагины();
85+
86+
Для Каждого ТекЭлемент Из ИндексПлагинов Цикл
87+
Если ОтключаемыеПлагины.Найти(ВРег(ТекЭлемент.Ключ)) = Неопределено Тогда
88+
Продолжить;
89+
КонецЕсли;
90+
Если НЕ ТекЭлемент.Значение.Включен() Тогда
91+
Продолжить;
92+
КонецЕсли;
93+
94+
Лог.Информация("Плагин ""%1"" не совместим с плагином ""%2"" и будет отключен на время выполнения синхронизации!",
95+
ТекЭлемент.Ключ,
96+
Имя());
97+
ТекЭлемент.Значение.Отключить();
98+
99+
КонецЦикла;
100+
101+
КонецПроцедуры
102+
103+
Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт
104+
105+
ТекущаяКоманда = ИмяКоманды;
106+
107+
Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды);
108+
Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда
109+
Возврат;
110+
КонецЕсли;
111+
112+
КонецПроцедуры
113+
114+
Процедура ПриПолученииПараметров(ПараметрыКоманды) Экспорт
115+
116+
КонецПроцедуры
117+
118+
Процедура ПередВыгрузкойКонфигурациюВИсходники(Конфигуратор,
119+
КаталогРабочейКопии,
120+
КаталогВыгрузки,
121+
ПутьКХранилищу,
122+
НомерВерсии) Экспорт
123+
124+
УдалитьФайлДампаИзменений(КаталогРабочейКопии);
125+
126+
КонецПроцедуры
127+
128+
Процедура ПослеВыгрузкиКонфигурациюВИсходники(Конфигуратор, КаталогВыгрузки) Экспорт
129+
130+
УдалитьФайлДампаИзменений(КаталогВыгрузки);
131+
132+
КонецПроцедуры
133+
134+
Процедура ПередКоммитом(КаталогРабочейКопии, Комментарий, Автор, Дата) Экспорт
135+
136+
КорневойКаталогГит = КорневойКаталогГит(КаталогРабочейКопии);
137+
138+
Если НЕ ЗначениеЗаполнено(КорневойКаталогГит) Тогда
139+
Лог.Предупреждение("Каталог ""%1"" не является репозитарием git!", КаталогРабочейКопии);
140+
Возврат;
141+
КонецЕсли;
142+
143+
ПутьКФайлуДампаИзменений = ОбъединитьПути(КаталогРабочейКопии, ИмяФайлаДампаИзменений());
144+
ФайлИгнорируемыхИзменений = Новый Файл(ОбъединитьПути(КорневойКаталогГит, ".gitignore"));
145+
ТекстИгнорируемыхИзменений = Новый ТекстовыйДокумент();
146+
147+
Если ФайлИгнорируемыхИзменений.Существует() И ФайлИгнорируемыхИзменений.ЭтоФайл() Тогда
148+
Лог.Отладка("Найден файл игнорируемых изменений ""%1"".", ФайлИгнорируемыхИзменений.ПолноеИмя);
149+
ТекстИгнорируемыхИзменений.Прочитать(ФайлИгнорируемыхИзменений.ПолноеИмя);
150+
КонецЕсли;
151+
152+
ОтносительныйПуть = СтрЗаменить(ПутьКФайлуДампаИзменений, КорневойКаталогГит, "");
153+
154+
Для НомерСтроки = 1 По ТекстИгнорируемыхИзменений.КоличествоСтрок() Цикл
155+
ТекСтрока = ТекстИгнорируемыхИзменений.ПолучитьСтроку(НомерСтроки);
156+
Если СтрНайти(ТекСтрока, ОтносительныйПуть) > 0 Тогда
157+
Возврат;
158+
КонецЕсли;
159+
КонецЦикла;
160+
161+
ТекстИгнорируемыхИзменений.ДобавитьСтроку(ОтносительныйПуть);
162+
ТекстИгнорируемыхИзменений.Записать(ФайлИгнорируемыхИзменений.ПолноеИмя);
163+
Лог.Отладка("Файл дампа изменений ""%1"" добавлен в файл игнорируемых изменений ""%2"".",
164+
ОтносительныйПуть,
165+
ФайлИгнорируемыхИзменений.ПолноеИмя);
166+
167+
ЗакоммититьФайлИгнорируемыхИзменений = Истина;
168+
169+
КонецПроцедуры
170+
171+
Процедура ПриКоммите(ГитРепозиторий,
172+
Комментарий,
173+
ПроиндексироватьОтслеживаемыеФайлы,
174+
ИмяФайлаКомментария,
175+
АвторДляГит,
176+
ДатаДляГит,
177+
Коммитер,
178+
ДатаКоммитера) Экспорт
179+
180+
Если НЕ ЗакоммититьФайлИгнорируемыхИзменений Тогда
181+
Возврат;
182+
КонецЕсли;
183+
184+
РабочийКаталог = ГитРепозиторий.ПолучитьРабочийКаталог();
185+
КорневойКаталогГит = КорневойКаталогГит(РабочийКаталог);
186+
187+
Если НЕ ЗначениеЗаполнено(КорневойКаталогГит) Тогда
188+
Лог.Предупреждение("Каталог ""%1"" не является репозитарием git!", РабочийКаталог);
189+
Возврат;
190+
КонецЕсли;
191+
192+
ФайлИгнорируемыхИзменений = Новый Файл(ОбъединитьПути(КорневойКаталогГит, ".gitignore"));
193+
194+
ПараметрыКомандыГит = Новый Массив();
195+
ПараметрыКомандыГит.Добавить("add");
196+
ПараметрыКомандыГит.Добавить("-A");
197+
ПараметрыКомандыГит.Добавить(ФайлИгнорируемыхИзменений.ПолноеИмя);
198+
199+
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКомандыГит);
200+
201+
КонецПроцедуры
202+
203+
#КонецОбласти
204+
205+
#Область Вспомогательные_процедуры_и_функции
206+
207+
// Функция возвращает путь к корневому каталогу репозитария git
208+
//
209+
// Параметры:
210+
// КаталогРабочейКопии - Строка - проверяемый каталог
211+
//
212+
// Возвращаемое значение:
213+
// Строка - путь к корневому каталогу репозитария git
214+
// если пустая строка, то каталог не является репозитарием git
215+
//
216+
Функция КорневойКаталогГит(Знач КаталогРабочейКопии)
217+
218+
ТекущийКаталог = Новый Файл(КаталогРабочейКопии);
219+
220+
ЭтоКорневойКаталог = (ТекущийКаталог.ПолноеИмя = "/"
221+
ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 1) = ":"
222+
ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 2) = ":/"
223+
ИЛИ Прав(ТекущийКаталог.ПолноеИмя, 2) = ":\");
224+
225+
Если ЭтоКорневойКаталог Тогда
226+
Возврат "";
227+
КонецЕсли;
228+
229+
СлужебныйКаталогГит = Новый Файл(ОбъединитьПути(ТекущийКаталог.ПолноеИмя, ".git"));
230+
231+
Если СлужебныйКаталогГит.Существует() И СлужебныйКаталогГит.ЭтоКаталог() Тогда
232+
Возврат ТекущийКаталог.ПолноеИмя;
233+
Иначе
234+
Возврат КорневойКаталогГит(ТекущийКаталог.Путь);
235+
КонецЕсли;
236+
237+
КонецФункции // КорневойКаталогГит()
238+
239+
// Процедура удаляет файл дампа изменений (ConfigDumpInfo.xml) в указаном каталоге
240+
//
241+
// Параметры:
242+
// КаталогРабочейКопии - Строка - проверяемый каталог
243+
//
244+
Процедура УдалитьФайлДампаИзменений(КаталогРабочейКопии)
245+
246+
ФайлДампаИзменений = Новый Файл(ОбъединитьПути(КаталогРабочейКопии, ИмяФайлаДампаИзменений()));
247+
248+
Если ФайлДампаИзменений.Существует() Тогда
249+
Лог.Отладка("Удаляем файл дампа изменений ""%1"".", ФайлДампаИзменений.ПолноеИмя);
250+
УдалитьФайлы(ФайлДампаИзменений.ПолноеИмя);
251+
КонецЕсли;
252+
253+
КонецПроцедуры // УдалитьФайлДампаИзменений()
254+
255+
// Функция возвращает имя файла дампа изменений
256+
//
257+
// Возвращаемое значение:
258+
// Строка - "ConfigDumpInfo.xml" имя файла дампа изменений
259+
//
260+
Функция ИмяФайлаДампаИзменений()
261+
Возврат "ConfigDumpInfo.xml";
262+
КонецФункции // ИмяФайлаДампаИзменений()
263+
264+
// Функция возвращает имя плагина инкрементальной выгрузки
265+
//
266+
// Возвращаемое значение:
267+
// Строка - "INCREMENT" имя плагина инкрементальной выгрузки
268+
//
269+
Функция ИмяПлагинаИнкрементальнойВыгрузки()
270+
Возврат "INCREMENT";
271+
КонецФункции // ИмяПлагинаИнкрементальнойВыгрузки()
272+
273+
// Функция возвращает имя плагина инкрементальной выгрузки
274+
//
275+
// Возвращаемое значение:
276+
// ФиксированныйМассив из Строка - список отключаемых плагинов
277+
//
278+
Функция ОтключаемыеПлагины()
279+
280+
ОтключаемыеПлагины = Новый Массив();
281+
ОтключаемыеПлагины.Добавить(ИмяПлагинаИнкрементальнойВыгрузки());
282+
283+
Возврат Новый ФиксированныйМассив(ОтключаемыеПлагины);
284+
285+
КонецФункции // ОтключаемыеПлагины()
286+
287+
#КонецОбласти
288+
289+
Процедура Инициализация()
290+
291+
Лог = Логирование.ПолучитьЛог(ИмяЛога());
292+
293+
КомандыПлагина = Новый Массив;
294+
КомандыПлагина.Добавить("init");
295+
КомандыПлагина.Добавить("sync");
296+
297+
ЗакоммититьФайлИгнорируемыхИзменений = Ложь;
298+
299+
КонецПроцедуры
300+
301+
Инициализация();

0 commit comments

Comments
 (0)