Skip to content

Commit 6a6b68a

Browse files
authored
Решен ряд задач (#136)
* #134 установка домена для пользователей по умолчанию * #133 Корректное завершение процесса TGitCache.exe * #125 добавлена возможность указания пути к исполняемому файлу git * #127 Оптимизировано получение интерфейса плагинов
2 parents 5363536 + 9be5611 commit 6a6b68a

18 files changed

+267
-99
lines changed

build_packagedef

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
КомандаOpm = Новый Команда;
2222
КомандаOpm.УстановитьКоманду("opm");
2323
КомандаOpm.ДобавитьПараметр("run install-opm");
24+
КомандаOpm.ДобавитьПараметр("feature/install-depends");
25+
КомандаOpm.ДобавитьЛогВыводаКоманды(ПараметрыСистемыOpm.ИмяЛогаСистемы());
2426

2527
КодВозврата = КомандаOpm.Исполнить();
2628

@@ -50,6 +52,9 @@
5052
КомандаOpm.УстановитьКоманду("opm");
5153
КомандаOpm.ДобавитьПараметр("run get-plugins");
5254

55+
КомандаOpm.ДобавитьЛогВыводаКоманды(ПараметрыСистемыOpm.ИмяЛогаСистемы());
56+
57+
5358
КодВозврата = КомандаOpm.Исполнить();
5459

5560
Если КодВозврата <> 0 Тогда
@@ -79,7 +84,7 @@
7984
Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());
8085

8186
Описание.Имя("gitsync")
82-
.Версия("3.0.0-beta")
87+
.Версия("3.0.1-beta")
8388
.ВерсияСреды("1.0.20")
8489
.ВключитьФайл("src")
8590
.ВключитьФайл("embedded_plugins")

features/check.core.feature

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,9 @@
1313
Когда Я создаю новый МенеджерПодписок
1414
И Я создаю новый ИнтерфейсПлагинов
1515
Тогда МенеджераПодписок реализует ИнтерфейсаПлагинов
16+
17+
Сценарий: Проверка интерфейса ТестовыйПлагин
18+
19+
Когда Я создаю новый ТестовыйПлагин
20+
И Я создаю новый ИнтерфейсПлагинов
21+
Тогда ТестовыйПлагин реализует ИнтерфейсаПлагинов

features/step_definitions/check.core.os

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
ВсеШаги.Добавить("ЯСоздаюНовыйМенеджерподписок");
1414
ВсеШаги.Добавить("ЯСоздаюНовыйИнтерфейсплагинов");
1515
ВсеШаги.Добавить("МенеджераподписокРеализуетИнтерфейсаплагинов");
16+
ВсеШаги.Добавить("ЯСоздаюНовыйТестовыйплагин");
17+
ВсеШаги.Добавить("ТестовыйплагинРеализуетИнтерфейсаплагинов");
1618

1719
Возврат ВсеШаги;
1820
КонецФункции
@@ -55,3 +57,18 @@
5557

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

60+
//Я создаю новый ТестовыйПлагин
61+
Процедура ЯСоздаюНовыйТестовыйплагин() Экспорт
62+
ПутьКПлагину = ОбъединитьПути(ТекущийСценарий().Каталог, "testsata/test_plugin/src/Классы", "testPlugin.os");
63+
ПодключитьСценарий(ПутьКПлагину, "ТестовыйПлагин");
64+
65+
БДД.СохранитьВКонтекст("ТестовыйПлагин", Новый ТестовыйПлагин);
66+
КонецПроцедуры
67+
68+
//ТестовыйПлагин реализует ИнтерфейсаПлагинов
69+
Процедура ТестовыйплагинРеализуетИнтерфейсаплагинов() Экспорт
70+
ИнтерфейсПлагинов = БДД.ПолучитьИзКонтекста("ИнтерфейсПлагинов");
71+
ТестовыйПлагин = БДД.ПолучитьИзКонтекста("ТестовыйПлагин");
72+
73+
ИнтерфейсПлагинов.Реализует(ТестовыйПлагин, Истина);
74+
КонецПроцедуры

features/sync.feature

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,20 @@
6666
И Код возврата команды "gitsync" равен 0
6767
И Я очищаю значение переменных окружения
6868
|GITSYNC_STORAGE_PATH|
69+
|GITSYNC_WORKDIR|
70+
71+
Сценарий: Синхронизация хранилища с git-репозиторием с использованием пути к git
72+
Допустим Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
73+
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
74+
И Я добавляю параметр "--git-path git" для команды "gitsync"
75+
И Я добавляю параметр "-v" для команды "gitsync"
76+
И Я добавляю параметр "sync" для команды "gitsync"
77+
И Я устанавливаю переменную окружения "GITSYNC_STORAGE_PATH" из переменной "КаталогХранилища1С"
78+
И Я устанавливаю переменную окружения "GITSYNC_WORKDIR" из переменной "ПутьКаталогаИсходников"
79+
Когда Я выполняю команду "gitsync"
80+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
81+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
82+
И Код возврата команды "gitsync" равен 0
83+
И Я очищаю значение переменных окружения
84+
|GITSYNC_STORAGE_PATH|
6985
|GITSYNC_WORKDIR|

gitsync3_packagedef

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#Использовать logos
2+
#Использовать fs
3+
Перем Лог;
4+
5+
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт
6+
7+
ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(РабочийКаталог, "oscript_modules"));
8+
9+
Лог.Информация("Установка локальных зависимостей библиотек");
10+
КомандаOpm = Новый Команда;
11+
12+
КомандаOpm.УстановитьКоманду("opm");
13+
КомандаOpm.ДобавитьПараметр("install -l");
14+
15+
КодВозврата = КомандаOpm.Исполнить();
16+
17+
Если КодВозврата <> 0 Тогда
18+
ВызватьИсключение КомандаOpm.ПолучитьВывод();
19+
КонецЕсли;
20+
21+
КомандаOpm = Новый Команда;
22+
КомандаOpm.УстановитьКоманду("opm");
23+
КомандаOpm.ДобавитьПараметр("run install-opm");
24+
КомандаOpm.ДобавитьПараметр("feature/install-depends");
25+
КомандаOpm.ДобавитьЛогВыводаКоманды(ПараметрыСистемыOpm.ИмяЛогаСистемы());
26+
27+
КодВозврата = КомандаOpm.Исполнить();
28+
29+
Если КодВозврата <> 0 Тогда
30+
ВызватьИсключение КомандаOpm.ПолучитьВывод();
31+
КонецЕсли;
32+
33+
Лог.Информация("Настройка локальных библиотек");
34+
35+
ПутьКФайлуЗагрузчику = ОбъединитьПути(РабочийКаталог, "oscript_modules", "package-loader.os");
36+
ШаблонныйФайлЗагрузчик = ОбъединитьПути(РабочийКаталог, "templates", "package-loader.os");
37+
ФайлЗагрузчик = Новый Файл(ПутьКФайлуЗагрузчику);
38+
Если Не ФайлЗагрузчик.Существует() Тогда
39+
КопироватьФайл(ШаблонныйФайлЗагрузчик, ПутьКФайлуЗагрузчику);
40+
Лог.Информация("Добавлен файл загрузки локальных библиотек");
41+
КонецЕсли;
42+
43+
ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
44+
ШаблонныйФайлНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "templates", "oscript.cfg");
45+
ФайлНастройкиСкрипта= Новый Файл(ПутьКФайлуНастройкиСкрипта);
46+
Если Не ФайлНастройкиСкрипта.Существует() Тогда
47+
КопироватьФайл(ШаблонныйФайлНастройкиСкрипта, ПутьКФайлуНастройкиСкрипта);
48+
Лог.Информация("Добавлен файл настройки запуска");
49+
КонецЕсли;
50+
51+
КомандаOpm = Новый Команда;
52+
КомандаOpm.УстановитьКоманду("opm");
53+
КомандаOpm.ДобавитьПараметр("run get-plugins");
54+
КомандаOpm.ДобавитьЛогВыводаКоманды(ПараметрыСистемыOpm.ИмяЛогаСистемы());
55+
56+
КодВозврата = КомандаOpm.Исполнить();
57+
58+
Если КодВозврата <> 0 Тогда
59+
ВызватьИсключение КомандаOpm.ПолучитьВывод();
60+
КонецЕсли;
61+
62+
Лог.Информация("Настройка локальных библиотек завершена");
63+
64+
КонецПроцедуры
65+
66+
Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт
67+
68+
КонецПроцедуры
69+
70+
Процедура ПослеСборки(Знач РабочийКаталог, Знач ПутьКФайлуПакета) Экспорт
71+
72+
ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
73+
ФайлНастройкиСкрипта= Новый Файл(ПутьКФайлуНастройкиСкрипта);
74+
Если ФайлНастройкиСкрипта.Существует() Тогда
75+
УдалитьФайлы(ПутьКФайлуНастройкиСкрипта);
76+
КонецЕсли;
77+
78+
ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(РабочийКаталог, "oscript_modules"));
79+
80+
КонецПроцедуры
81+
82+
Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());
83+
84+
Описание.Имя("gitsync3")
85+
.Версия("0.9.3-beta")
86+
.ВерсияСреды("1.0.20")
87+
.ВключитьФайл("src")
88+
.ВключитьФайл("embedded_plugins")
89+
.ВключитьФайл("oscript_modules")
90+
.ВключитьФайл("docs")
91+
.ВключитьФайл("readme.md")
92+
.ОпределяетКласс("МенеджерСинхронизации", "src/core/Классы/МенеджерСинхронизации.os")
93+
.ОпределяетКласс("УправлениеПлагинами", "src/core/Классы/УправлениеПлагинами.os")
94+
.ИсполняемыйФайл("src/cmd/gitsync.os", "gitsync3");

packagedef

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
Описание.Имя("gitsync")
2727
.Версия("3.0.0-beta")
2828
.ВерсияСреды("1.0.20")
29-
.ЗависитОт("logos", "1.0.1")
29+
.ЗависитОт("logos", "1.1.1")
3030
.ЗависитОт("tempfiles", "0.2.2")
3131
.ЗависитОт("v8runner", "1.1.3")
3232
.ЗависитОт("gitrunner", "1.5.1")
@@ -36,8 +36,8 @@
3636
.ЗависитОт("fs", "0.4.1")
3737
.ЗависитОт("delegate", "0.2.0")
3838
.ЗависитОт("v8storage", "0.6.5")
39-
.ЗависитОт("reflector")
40-
//.ЗависитОт("opm", "1.13.1")
39+
.ЗависитОт("reflector", "0.4.0")
40+
//.ЗависитОт("opm", "1.14.0")
4141
.ЗависитОт("cli", "0.9.8")
4242
.ЗависитОт("fluent", "0.3.1") // Для работы opm
4343
.ВключитьФайл("src")

readme.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ $ opm install -f <ПутьКФайлу>
105105

106106
Пример использования:
107107

108-
`gisync clone --storage-user Администратор --storage-pwd Секрет <путь_к_хранилищу_1С> <адрес_удаленного_репозитория> <рабочий_каталог>(необязательный)`
108+
`gitsync clone --storage-user Администратор --storage-pwd Секрет <путь_к_хранилищу_1С> <адрес_удаленного_репозитория> <рабочий_каталог>(необязательный)`
109109

110110
Справка по команде `clone`: `gitsync clone --help`
111111

@@ -115,9 +115,13 @@ $ opm install -f <ПутьКФайлу>
115115

116116
Пример использования:
117117

118-
`gitsync init --storage-user Администратор --storage-pwd Секрет C:/Хранилище_1С/ C:/GIT/src`
118+
* `gitsync init --storage-user Администратор --storage-pwd Секрет C:/Хранилище_1С/ C:/GIT/src`
119119

120-
Данная команда создаст новый репозиторий git в каталоге `C:/GIT/src` из хранилища 1С по пути `C:/Хранилище_1С/` и наполнил его служебными файлами `VERSION` и `AUTHORS`
120+
Данная команда создаст новый репозиторий git в каталоге `C:/GIT/src` из хранилища 1С по пути `C:/Хранилище_1С/` и наполнил его служебными файлами `VERSION` и `AUTHORS`
121+
122+
* `gitsync init --storage-user Администратор --storage-pwd Секрет http:/www.storages.1c.com/repository.1ccr/ИмяХранилища C:/GIT/src`
123+
124+
Тоже самое только для `http` хранилищем по адресу `http:/www.storages.1c.com/repository.1ccr/ИмяХранилища`
121125

122126
Справка по команде `init`: `gitsync init --help`
123127

src/cmd/gitsync.os

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@
3131

3232
Приложение.Опция("t tempdir", "", "путь к каталогу временных файлов")
3333
.ВОкружении("GITSYNC_TEMP");
34-
34+
35+
Приложение.Опция("git-path", "", "путь к исполняемому файлу git")
36+
.ВОкружении("GITSYNC_GIT_PATH GIT_PATH");
37+
3538
Приложение.Опция("domain-email", "localhost", "домен почты для пользователей git")
3639
.ВОкружении("GITSYNC_EMAIL");
3740

@@ -61,7 +64,7 @@
6164

6265
ВерсияПлатформы = Команда.ЗначениеОпции("v8version");
6366
ВыводДополнительнойИнформации = Команда.ЗначениеОпции("verbose");
64-
//Плагины = Команда.ЗначениеОпции("plugins");
67+
ПутьКГит = Команда.ЗначениеОпции("git-path");
6568
ДоменПочты = Команда.ЗначениеОпции("domain-email");
6669
ВременныйКаталогРаботы = Команда.ЗначениеОпции("tempdir");
6770
ДоменПочты = Команда.ЗначениеОпции("domain-email");
@@ -70,7 +73,7 @@
7073

7174
Лог.Отладка("Устанавливаю общие параметры");
7275
ПараметрыПриложения.УстановитьВерсиюПлатформы(ВерсияПлатформы);
73-
//ПараметрыПриложения.УстановитьПлагины(Плагины);
76+
ПараметрыПриложения.УстановитьПутьКГит(ПутьКГит);
7477
ПараметрыПриложения.УстановитьДоменПочты(ДоменПочты);
7578
ПараметрыПриложения.УстановитьВременныйКаталог(ВременныйКаталогРаботы);
7679

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858

5959
Распаковщик = Новый МенеджерСинхронизации();
6060
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
61+
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
62+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
6163
.ПодпискиНаСобытия(ИндексПлагинов)
6264
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
6365
.УровеньЛога(ПараметрыПриложения.УровеньЛога())
@@ -77,6 +79,13 @@
7779
Лог.Отладка("URL репозитория: <%1>", URLРепозитария);
7880

7981
ГитРепозиторий = Новый ГитРепозиторий;
82+
83+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
84+
85+
Если ЗначениеЗаполнено(ОбщиеПараметры.ПутьКГит) Тогда
86+
ГитРепозиторий.УстановитьПутьКГит(ОбщиеПараметры.ПутьКГит);
87+
КонецЕсли;
88+
8089
ГитРепозиторий.УстановитьРабочийКаталог(КаталогЛокальнойКопии);
8190
ГитРепозиторий.КлонироватьРепозиторий(URLРепозитария, КаталогЛокальнойКопии);
8291

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060

6161
Распаковщик = Новый МенеджерСинхронизации();
6262
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
63+
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
64+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
6365
.ПодпискиНаСобытия(ИндексПлагинов)
6466
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
6567
.УровеньЛога(ПараметрыПриложения.УровеньЛога())

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
НомерВерсии = Команда.ЗначениеАргумента("VERSION");
2222
КаталогРабочейКопии = Команда.ЗначениеАргумента("WORKDIR");
2323

24-
ВызватьКоммит = Команда.ЗначениеОпции("--commit");
24+
ВызватьКоммит = Команда.ЗначениеОпции("commit");
2525

2626
ОбщиеПараметры = ПараметрыПриложения.Параметры();
2727
МенеджерПлагинов = ОбщиеПараметры.УправлениеПлагинами;
@@ -30,6 +30,8 @@
3030

3131
Распаковщик = Новый МенеджерСинхронизации();
3232
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
33+
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
34+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
3335
.ПодпискиНаСобытия(ИндексПлагинов)
3436
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
3537
.УровеньЛога(ПараметрыПриложения.УровеньЛога());

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555

5656
Распаковщик = Новый МенеджерСинхронизации();
5757
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
58+
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
59+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
5860
.ПодпискиНаСобытия(ИндексПлагинов)
5961
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
6062
.УровеньЛога(ПараметрыПриложения.УровеньЛога())

0 commit comments

Comments
 (0)