Skip to content

Commit beb1069

Browse files
committed
Изменения в приложении gitsync
1 parent 50bc4ef commit beb1069

11 files changed

+173
-156
lines changed

src/cmd/gitsync.os

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,48 @@
1313
///////////////////////////////////////////////////////////////////////////////
1414

1515
Процедура ВыполнитьПриложение()
16-
17-
Приложение = Новый КонсольноеПриложение(ПараметрыПриложения.ИмяПриложения(), "Приложение для синхронизации Хранилища 1С с git");
16+
17+
Приложение = Новый КонсольноеПриложение(ПараметрыПриложения.ИмяПриложения(),
18+
"Приложение для синхронизации Хранилища 1С с git");
1819
Приложение.Версия("version", ПараметрыПриложения.Версия());
1920

20-
ВерсияПлатформы = Приложение.Опция("v8version", "8.3", "маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)").ВОкружении("GITSYNC_V8VERSION");
21-
ВыводДополнительнойИнформации = Приложение.Опция("v verbose", Ложь, "вывод отладочной информация в процессе выполнении").Флаговый().ВОкружении("GITSYNC_VERSOBE");
22-
Плагины = Приложение.Опция("p plugins", "", "плагины к загрузке и исполнению (дополнительное ограничение)").ТМассивСтрок().ВОкружении("GITSYNC_RUN_PLUGINS");
23-
ВременныйКаталогРаботы = Приложение.Опция("t tempdir", "", "путь к каталогу временных файлов").ВОкружении("GITSYNC_TEMP");
24-
ДоменПочты= Приложение.Опция("e email", "localhost", "домен почты для пользователей git").ВОкружении("GITSYNC_EMAIL");
21+
ВерсияПлатформы = Приложение.Опция("v8version", "8.3", "маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)")
22+
.ВОкружении("GITSYNC_V8VERSION");
23+
24+
ВыводДополнительнойИнформации = Приложение.Опция("v verbose", Ложь, "вывод отладочной информация в процессе выполнении")
25+
.Флаговый()
26+
.ВОкружении("GITSYNC_VERSOBE");
27+
28+
Плагины = Приложение.Опция("p plugins", "", "плагины к загрузке и исполнению (дополнительное ограничение)")
29+
.ТМассивСтрок()
30+
.ВОкружении("GITSYNC_RUN_PLUGINS");
31+
32+
ВременныйКаталогРаботы = Приложение.Опция("t tempdir", "", "путь к каталогу временных файлов")
33+
.ВОкружении("GITSYNC_TEMP");
2534

26-
Приложение.ДобавитьКоманду("usage u", "Выводит примеры использования", Новый КомандаUsage);
27-
Приложение.ДобавитьКоманду("init i", "Инициализация структуры нового хранилища git. Подготовка к синхронизации", Новый КомандаInit);
28-
Приложение.ДобавитьКоманду("sync s", "Выполняет синхронизацию хранилища 1С с git-репозиторием", Новый КомандаSync);
29-
Приложение.ДобавитьКоманду("clone c", "Клонирует существующий репозиторий и создает служебные файлы", Новый КомандаClone);
35+
ДоменПочты = Приложение.Опция("e email", "localhost", "домен почты для пользователей git")
36+
.ВОкружении("GITSYNC_EMAIL");
37+
38+
Приложение.ДобавитьКоманду("usage u", "Выводит примеры использования",
39+
Новый КомандаUsage);
40+
Приложение.ДобавитьКоманду("init i", "Инициализация структуры нового хранилища git. Подготовка к синхронизации",
41+
Новый КомандаInit);
42+
Приложение.ДобавитьКоманду("sync s", "Выполняет синхронизацию хранилища 1С с git-репозиторием",
43+
Новый КомандаSync);
44+
Приложение.ДобавитьКоманду("clone c", "Клонирует существующий репозиторий и создает служебные файлы",
45+
Новый КомандаClone);
3046
//Приложение.ДобавитьКоманду("all a", "Запускает синхронизацию по нескольким репозиториям", Новый КомандаAll);
31-
Приложение.ДобавитьКоманду("set-version v", "Устанавливает необходимую версию в файл VERSION", Новый КомандаSetVersion);
32-
Приложение.ДобавитьКоманду("plugins p", "Управление плагинами gitsync", Новый Командаplugins);
33-
47+
Приложение.ДобавитьКоманду("set-version v", "Устанавливает необходимую версию в файл VERSION",
48+
Новый КомандаSetVersion);
49+
Приложение.ДобавитьКоманду("plugins p", "Управление плагинами gitsync",
50+
Новый Командаplugins);
51+
3452
ПараметрыПриложения.ПодготовитьПлагины(Приложение);
3553

3654
Приложение.УстановитьДействиеПередВыполнением(ЭтотОбъект);
3755

3856
Приложение.Запустить(АргументыКоманднойСтроки);
39-
57+
4058
КонецПроцедуры // ВыполнениеКоманды()
4159

4260
Процедура ПередВыполнениемКоманды(Знач Команда) Экспорт
@@ -49,26 +67,21 @@
4967
ПараметрыПриложения.УстановитьПлагины(Плагины.Значение);
5068
ПараметрыПриложения.УстановитьДоменПочты(ДоменПочты.Значение);
5169
ПараметрыПриложения.УстановитьРежимОтладкиПриНеобходимости(ВыводДополнительнойИнформации.Значение);
52-
5370
ПараметрыПриложения.УстановитьВременныйКаталог(ВременныйКаталогРаботы.Значение);
5471

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

57-
Процедура ИмяПроцедуры() Экспорт
58-
59-
КонецПроцедуры
60-
6174
///////////////////////////////////////////////////////
6275

6376
Лог = ПараметрыПриложения.Лог();
6477

6578
Попытка
66-
79+
6780
ВыполнитьПриложение();
68-
81+
6982
Исключение
70-
83+
7184
Лог.КритичнаяОшибка(ОписаниеОшибки());
7285
ЗавершитьРаботу(ПараметрыПриложения.РезультатыКоманд().ОшибкаВремениВыполнения);
73-
86+
7487
КонецПопытки;

src/cmd/Классы/КомандаClone.os

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,13 @@
99
Команда.Аргумент("URL", "", "Адрес удаленного репозитория GIT.").ТСтрока().ВОкружении("GITSYNC_REPO_URL");
1010
Команда.Аргумент("WORKDIR", "", "Каталог исходников внутри локальной копии git-репозитария.").ТСтрока().ВОкружении("GITSYNC_WORKDIR").Обязательный(Ложь).ПоУмолчанию(ТекущийКаталог());
1111

12-
Команда.УстановитьДействиеПередВыполнением(ПараметрыПриложения);
12+
// Команда.УстановитьДействиеПередВыполнением(ПараметрыПриложения);
1313
Команда.УстановитьДействиеПослеВыполнения(ПараметрыПриложения);
1414

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

1717
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
1818

19-
ОбщиеПараметры = ПараметрыПриложения.Параметры();
20-
МенеджерПлагинов = ОбщиеПараметры.МенеджерПлагинов;
21-
2219
ПутьКХранилищу = Команда.ЗначениеАргумента("PATH");
2320
КаталогРабочейКопии = Команда.ЗначениеАргумента("WORKDIR");
2421
URLРепозитория = Команда.ЗначениеАргумента("URL");
@@ -49,9 +46,17 @@
4946
КаталогИсходников = МассивФайлов[0].ПолноеИмя;
5047
КонецЕсли;
5148

52-
Распаковщик = Новый МенеджерСинхронизации(ПараметрыПриложения, МенеджерПлагинов);
53-
Распаковщик.ВерсияПлатформы = ОбщиеПараметры.ВерсияПлатформы;
54-
Распаковщик.УстановитьАвторизациюВХранилищеКонфигурации(ПользовательХранилища, ПарольПользователяХранилища);
49+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
50+
МенеджерПлагинов = ОбщиеПараметры.УправлениеПлагинами;
51+
52+
ОбработчикПодписок = МенеджерПлагинов.НовыйМенеджерПодписок();
53+
54+
Распаковщик = Новый МенеджерСинхронизации();
55+
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
56+
.ПодпискиНаСобытия(ОбработчикПодписок)
57+
// .УровеньЛога(ОбщиеПараметры.УровеньЛога) // Пока нет данной опции
58+
.АвторизацияВХранилищеКонфигурации(ПользовательХранилища, ПарольПользователяХранилища);
59+
5560
Распаковщик.НаполнитьКаталогРабочейКопииСлужебнымиДанными(КаталогИсходников, ПутьКХранилищу);
5661

5762
Лог.Информация("Клонирование завершено");

src/cmd/Классы/КомандаInit.os

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,11 @@
1010
.ВОкружении("GITSYNC_WORKDIR")
1111
.Обязательный(Ложь)
1212
.ПоУмолчанию(ТекущийКаталог());;
13-
14-
Команда.УстановитьДействиеПередВыполнением(ПараметрыПриложения);
15-
Команда.УстановитьДействиеПослеВыполнения(ПараметрыПриложения);
1613

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

1916
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
2017

21-
ОбщиеПараметры = ПараметрыПриложения.Параметры();
22-
МенеджерПлагинов = ОбщиеПараметры.МенеджерПлагинов;
2318
Лог = ПараметрыПриложения.Лог();
2419

2520
ПутьКХранилищу = Команда.ЗначениеАргумента("PATH");
@@ -46,9 +41,17 @@
4641
КаталогИсходников = МассивФайлов[0].ПолноеИмя;
4742
КонецЕсли;
4843

49-
Распаковщик = Новый МенеджерСинхронизации(ПараметрыПриложения, МенеджерПлагинов);
50-
Распаковщик.ВерсияПлатформы = ОбщиеПараметры.ВерсияПлатформы;
51-
Распаковщик.УстановитьАвторизациюВХранилищеКонфигурации(ПользовательХранилища, ПарольПользователяХранилища);
44+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
45+
МенеджерПлагинов = ОбщиеПараметры.УправлениеПлагинами;
46+
47+
ОбработчикПодписок = МенеджерПлагинов.НовыйМенеджерПодписок();
48+
49+
Распаковщик = Новый МенеджерСинхронизации();
50+
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
51+
.ПодпискиНаСобытия(ОбработчикПодписок)
52+
// .УровеньЛога(ОбщиеПараметры.УровеньЛога) // Пока нет данной опции
53+
.АвторизацияВХранилищеКонфигурации(ПользовательХранилища, ПарольПользователяХранилища);
54+
5255
Распаковщик.НаполнитьКаталогРабочейКопииСлужебнымиДанными(КаталогИсходников, ПутьКХранилищу);
5356

5457
Лог.Информация("Инициализация завершена");

src/cmd/Классы/КомандаPluginDisable.os

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,24 @@
1414
ИменаПлагинов = Команда.ЗначениеАргумента("PLUGIN");
1515
ВсеВключенные = Команда.ЗначениеОпции("--all");
1616

17-
ВсеПлагины = РаботаСПлагинами.ПолучитьУстановленныеПлагины();
18-
ВключенныеПлагины = РаботаСПлагинами.ПолучитьВключенныеПлагины();
17+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
18+
МенеджерПлагинов = ОбщиеПараметры.УправлениеПлагинами;
19+
20+
ВсеПлагины = МенеджерПлагинов.ПолучитьИндексПлагинов();
21+
ВключенныеПлагины = МенеджерПлагинов.ПрочитатьВключенныеПлагины();
1922

2023
ПлагиныДляОтключения = Новый Массив;
2124

2225
Если ВсеВключенные Тогда
23-
ВключенныеПлагины = Новый Соответствие;
24-
Иначе
25-
26-
Для каждого Плагин Из ИменаПлагинов Цикл
27-
28-
ИмяПлагина = СокрЛ(Плагин);
29-
НашлиПлагин = ВсеПлагины[ИмяПлагина];
30-
31-
Если НашлиПлагин = Неопределено Тогда
32-
Сообщить(СтрШаблон("Нашли не установленный плагин: %1", Плагин));
33-
Продолжить;
34-
КонецЕсли;
35-
36-
ВключенныеПлагины.Удалить(ИмяПлагина);
37-
26+
Для каждого Плагин Из ВсеПлагины Цикл
27+
ПлагиныДляОтключения.Добавить(Плагин.Ключ);
3828
КонецЦикла;
39-
29+
Иначе
30+
ПлагиныДляОтключения = ИменаПлагинов;
4031
КонецЕсли;
32+
33+
МенеджерПлагинов.ОтключитьПлагины(ИменаПлагинов);
4134

42-
РаботаСПлагинами.ВключитьПлагины(ВключенныеПлагины);
35+
МенеджерПлагинов.ЗаписатьВключенныеПлагины();
4336

4437
КонецПроцедуры
45-
46-
Функция ИмяФункции()Экспорт
47-
48-
КонецФункции

src/cmd/Классы/КомандаPluginEnable.os

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,20 @@
1616
ИменаПлагинов = Команда.ЗначениеАргумента("PLUGIN");
1717
ВсеУстановленные = Команда.ЗначениеОпции("--all");
1818

19-
ВсеПлагины = РаботаСПлагинами.ПолучитьУстановленныеПлагины();
20-
ВключенныеПлагины = РаботаСПлагинами.ПолучитьВключенныеПлагины();
19+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
20+
МенеджерПлагинов = ОбщиеПараметры.УправлениеПлагинами;
21+
22+
ВсеПлагины = МенеджерПлагинов.ПолучитьИндексПлагинов();
23+
ВключенныеПлагины = МенеджерПлагинов.ПрочитатьВключенныеПлагины();
2124

2225
МассивПлагинов = Новый Массив;
2326

2427
Если ВсеУстановленные Тогда
25-
ВключенныеПлагины = ВсеПлагины;
28+
29+
Для каждого Плагин Из ВсеПлагины Цикл
30+
МенеджерПлагинов.ВключитьПлагин(Плагин.Ключ);
31+
КонецЦикла;
32+
2633
Иначе
2734

2835
Для каждого Плагин Из ИменаПлагинов Цикл
@@ -35,20 +42,16 @@
3542
Продолжить;
3643
КонецЕсли;
3744

38-
ВключенныеПлагины.Вставить(Плагин, Истина);
45+
МенеджерПлагинов.ВключитьПлагин(ИмяПлагина);
3946

4047
Сообщить("Включен плагин: "+ ИмяПлагина);
4148

4249
КонецЦикла;
4350

4451
КонецЕсли;
4552

46-
РаботаСПлагинами.ВключитьПлагины(ВключенныеПлагины);
53+
МенеджерПлагинов.ЗаписатьВключенныеПлагины();
4754

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

50-
Функция ИмяФункции()Экспорт
51-
52-
КонецФункции
53-
5457
Лог = ПараметрыПриложения.Лог();

src/cmd/Классы/КомандаPluginInstall.os

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
//ВызватьИсключение "Команда установки не реализована";
1919

2020
//МассивПлагиновGithub = Команда.ЗначениеАргумента("URL");
21-
ПакетыКУстановке = Команда.ЗначениеАргумента("NAME");
22-
МассивФайловПлагинов = Команда.ЗначениеОпции("--file");
23-
АктивизироватьПлагины = Команда.ЗначениеОпции("--enable");
21+
// ПакетыКУстановке = Команда.ЗначениеАргумента("NAME");
22+
// МассивФайловПлагинов = Команда.ЗначениеОпции("--file");
23+
// АктивизироватьПлагины = Команда.ЗначениеОпции("--enable");
2424

25-
Для каждого ПутьКПлагину Из МассивФайловПлагинов Цикл
25+
// Для каждого ПутьКПлагину Из МассивФайловПлагинов Цикл
2626

27-
РаботаСПлагинами.УстановитьФайлПлагин(ПутьКПлагину);
28-
//ВключенныеПлагины.Вставить(ОписаниеПлагина.ИмяПакета);
27+
// РаботаСПлагинами.УстановитьФайлПлагин(ПутьКПлагину);
28+
// //ВключенныеПлагины.Вставить(ОписаниеПлагина.ИмяПакета);
2929

30-
КонецЦикла;
30+
// КонецЦикла;
3131

3232
// Для каждого URLИВерсия Из МассивПлагиновGithub Цикл
3333

@@ -51,8 +51,4 @@
5151

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

54-
Функция ИмяФункции()Экспорт
55-
56-
КонецФункции
57-
5854
Лог = ПараметрыПриложения.Лог();

0 commit comments

Comments
 (0)