Skip to content

Commit 81fabb4

Browse files
committed
Merge branch 'release/2.0'
2 parents cdfa013 + 58df665 commit 81fabb4

16 files changed

+1027
-683
lines changed

.vscode/tasks.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"version": "0.1.0",
33
"windows": {
44
"command": "cmd",
5-
"args": ["/c"]
5+
"args": ["/c", "chcp 65001 >nul &"]
66
},
77
"linux": {
88
"command": "sh",

features/version.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
Когда очищаю параметры гитсинк в контексте
1010

1111
Сценарий: Получение версии продукта
12-
Когда я выполняю команду gitsync "-version"
12+
Когда я выполняю команду gitsync "version"
1313
Тогда в лог-файле запуска продукта есть строка "."
1414

packagedef

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11

22
Описание.Имя("gitsync")
3-
.Версия("1.2.1")
3+
.Версия(ПараметрыСистемы.ВерсияПродукта())
44
.ВерсияСреды("1.0.15")
55
.ЗависитОт("logos")
66
.ЗависитОт("cmdline")
77
.ЗависитОт("tempfiles")
8-
.ЗависитОт("tool1cd")
9-
.ЗависитОт("v8runner")
8+
.ЗависитОт("tool1cd", "0.3")
9+
.ЗависитОт("v8runner", "0.7")
1010
.ЗависитОт("strings")
11-
.ЗависитОт("1commands")
11+
.ЗависитОт("1commands", "1.0")
1212
.ВключитьФайл("src")
1313
.ВключитьФайл("tests")
14+
.ВключитьФайл("features")
1415
.ВключитьФайл("bin")
1516
.ВключитьФайл("config-example.xml")
1617
.ВключитьФайл("readme.md")
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
///////////////////////////////////////////////////////////////////
2+
//
3+
// Служебный модуль с реализацией работы команды all
4+
//
5+
// Представляет собой модификацию приложения gitsync от
6+
// команды oscript-library
7+
//
8+
// Структура модуля реализована в соответствии с рекомендациями
9+
// oscript-app-template (C) EvilBeaver
10+
//
11+
///////////////////////////////////////////////////////////////////
12+
13+
Перем ДопПараметры;
14+
15+
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
16+
17+
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Запускает синхронизацию по нескольким репозиториям");
18+
19+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьКНастройкам", "Путь к файлу настроек синхронизатора.");
20+
21+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-log", "<Путь к файлу лога>");
22+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-timer", "<Интервал срабатывания>");
23+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-force", "<on|off> принудительная синхронизация");
24+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-debug", "<on|off>");
25+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-verbose", "<on|off>");
26+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
27+
28+
Парсер.ДобавитьКоманду(ОписаниеКоманды);
29+
30+
КонецПроцедуры // ЗарегистрироватьКоманду
31+
32+
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт
33+
34+
ДопПараметры = ДополнительныеПараметры;
35+
36+
ИмяФайлаНастроек = ПараметрыКоманды["ПутьКНастройкам"];
37+
Если ИмяФайлаНастроек = Неопределено Тогда
38+
39+
МенеджерКомандПриложения.ПоказатьСправкуПоКомандам("all");
40+
Возврат МенеджерКомандПриложения.РезультатыКоманд().НеверныеПараметры;
41+
42+
КонецЕсли;
43+
44+
КаталогRoot = ОбъединитьПути(ТекущийСценарий().Каталог, "..\..\");
45+
46+
Если ПараметрыКоманды["-log"] <> Неопределено Тогда
47+
48+
Аппендер = Новый ВыводЛогаВФайл();
49+
Аппендер.ОткрытьФайл(ПараметрыКоманды["-log"]);
50+
ДополнительныеПараметры.Лог.ДобавитьСпособВывода(Аппендер);
51+
Раскладка = ЗагрузитьСценарий(ОбъединитьПути(КаталогRoot, "log-layout.os"));
52+
ДополнительныеПараметры.Лог.УстановитьРаскладку(Раскладка);
53+
54+
КонецЕсли;
55+
56+
Интервал = 0;
57+
Если ПараметрыКоманды["-timer"] <> Неопределено Тогда
58+
59+
Интервал = Число(ПараметрыКоманды["-timer"]);
60+
61+
КонецЕсли;
62+
63+
Контроллер = ЗагрузитьСценарий(ОбъединитьПути(КаталогRoot, "multi-controller.os"));
64+
65+
Пока Истина Цикл
66+
67+
Контроллер.ВыполнитьСинхронизациюПоФайлуНастроек(ЭтотОбъект, ИмяФайлаНастроек, ПараметрыКоманды["-force"] = Истина);
68+
69+
Если Интервал <= 0 Тогда
70+
71+
Прервать;
72+
73+
Иначе
74+
75+
ДополнительныеПараметры.Лог.Информация("Ожидаем " + Интервал + " секунд перед новым циклом");
76+
Приостановить(Интервал * 1000);
77+
78+
КонецЕсли;
79+
80+
КонецЦикла;
81+
82+
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
83+
84+
КонецФункции // ВыполнитьКоманду
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
///////////////////////////////////////////////////////////////////
2+
//
3+
// Служебный модуль с реализацией работы команды clone
4+
//
5+
// Представляет собой модификацию приложения gitsync от
6+
// команды oscript-library
7+
//
8+
// Структура модуля реализована в соответствии с рекомендациями
9+
// oscript-app-template (C) EvilBeaver
10+
//
11+
///////////////////////////////////////////////////////////////////
12+
13+
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
14+
15+
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Клонирует существующий репозиторий и создает служебные файлы");
16+
17+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьКХранилищу", "Файловый путь к каталогу хранилища конфигурации 1С.");
18+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "URLРепозитория", "Адрес удаленного репозитория GIT.");
19+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ЛокальныйКаталогГит", "Каталог исходников внутри локальной копии git-репозитария.");
20+
21+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-email", "<домен почты для пользователей git>");
22+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-debug", "<on|off>");
23+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-verbose", "<on|off>");
24+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
25+
26+
Парсер.ДобавитьКоманду(ОписаниеКоманды);
27+
28+
КонецПроцедуры // ЗарегистрироватьКоманду
29+
30+
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт
31+
32+
Распаковщик = РаспаковщикКонфигурации.ПолучитьИНастроитьРаспаковщик(ПараметрыКоманды, ДополнительныеПараметры);
33+
КаталогРабочейКопии = РаспаковщикКонфигурации.ПодготовитьКаталогНовойРабочейКопии(ПараметрыКоманды["ЛокальныйКаталогГит"]);
34+
35+
URL = ПараметрыКоманды["URLРепозитория"];
36+
Если ПустаяСтрока(URL) Тогда
37+
38+
ВызватьИсключение "Не указан URL репозитария";
39+
40+
КонецЕсли;
41+
42+
СоздатьКаталог(КаталогРабочейКопии);
43+
Результат = Распаковщик.КлонироватьРепозитарий(КаталогРабочейКопии, URL);
44+
Если Результат <> 0 Тогда
45+
46+
ВызватьИсключение "git clone вернул код <" + Результат + ">";
47+
48+
КонецЕсли;
49+
50+
РаспаковщикКонфигурации.НаполнитьКаталогРабочейКопииСлужебнымиДанными(КаталогРабочейКопии, Распаковщик, ПараметрыКоманды["ПутьКХранилищу"]);
51+
52+
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
53+
54+
КонецФункции // ВыполнитьКоманду
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
///////////////////////////////////////////////////////////////////
2+
//
3+
// Служебный модуль с реализацией работы команды export
4+
//
5+
// Представляет собой модификацию приложения gitsync от
6+
// команды oscript-library
7+
//
8+
// Структура модуля реализована в соответствии с рекомендациями
9+
// oscript-app-template (C) EvilBeaver
10+
//
11+
///////////////////////////////////////////////////////////////////
12+
13+
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт
14+
15+
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Выполнить локальную синхронизацию, без pull/push");
16+
17+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьКХранилищу", "Файловый путь к каталогу хранилища конфигурации 1С.");
18+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ЛокальныйКаталогГит", "Каталог исходников внутри локальной копии git-репозитария.");
19+
20+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-email", "<домен почты для пользователей git>");
21+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-v8version", "<Маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)>");
22+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-debug", "<on|off>");
23+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-verbose", "<on|off>");
24+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-format", "<hierarchical|plain>");
25+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-minversion", "<номер минимальной версии для выгрузки>");
26+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-maxversion", "<номер максимальной версии для выгрузки>");
27+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-limit", "<выгрузить неболее limit версий от текущей выгруженной>");
28+
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>");
29+
30+
Парсер.ДобавитьКоманду(ОписаниеКоманды);
31+
32+
КонецПроцедуры // ЗарегистрироватьКоманду
33+
34+
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт
35+
36+
ЛокальныйКаталогГит = ПараметрыКоманды["ЛокальныйКаталогГит"];
37+
Формат = ПараметрыКоманды["-format"];
38+
МинВерсия = ПараметрыКоманды["-minversion"];
39+
МаксВерсия = ПараметрыКоманды["-maxversion"];
40+
Лимит = ПараметрыКоманды["-limit"];
41+
42+
Если ЛокальныйКаталогГит = Неопределено Тогда
43+
44+
ЛокальныйКаталогГит = ТекущийКаталог();
45+
46+
КонецЕсли;
47+
48+
Если Формат = Неопределено Тогда
49+
50+
Формат = РежимВыгрузкиФайлов.Авто;
51+
52+
КонецЕсли;
53+
54+
Если МинВерсия = Неопределено Тогда
55+
56+
МинВерсия = 0;
57+
58+
КонецЕсли;
59+
60+
Если МаксВерсия = Неопределено Тогда
61+
62+
МаксВерсия = 0;
63+
64+
КонецЕсли;
65+
66+
Если Лимит = Неопределено Тогда
67+
68+
Лимит = 0;
69+
70+
КонецЕсли;
71+
72+
МаксВерсия = Число(МаксВерсия);
73+
МинВерсия = Число(МинВерсия);
74+
Лимит = Число(Лимит);
75+
76+
Распаковщик = РаспаковщикКонфигурации.ПолучитьИНастроитьРаспаковщик(ПараметрыКоманды, ДополнительныеПараметры);
77+
Распаковщик.ВерсияПлатформы = ПараметрыКоманды["-v8version"];
78+
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"];
79+
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников");
80+
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик, ПараметрыКоманды["ПутьКХранилищу"], ЛокальныйКаталогГит, МинВерсия, МаксВерсия, Формат,,, Лимит);
81+
ДополнительныеПараметры.Лог.Информация("Выгрузка завершена");
82+
83+
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
84+
85+
КонецФункции // ВыполнитьКоманду

0 commit comments

Comments
 (0)