Skip to content

Commit 03de27e

Browse files
committed
Наброски команды all
1 parent 20086b3 commit 03de27e

File tree

4 files changed

+282
-3
lines changed

4 files changed

+282
-3
lines changed

src/cmd/gitsync.os

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,12 @@
4646
Новый КомандаSync);
4747
Приложение.ДобавитьКоманду("clone c", "Клонирует существующий репозиторий и создает служебные файлы",
4848
Новый КомандаClone);
49-
//Приложение.ДобавитьКоманду("all a", "Запускает синхронизацию по нескольким репозиториям", Новый КомандаAll);
49+
Приложение.ДобавитьКоманду("all a", "Запускает синхронизацию по нескольким репозиториям",
50+
Новый КомандаAll);
5051
Приложение.ДобавитьКоманду("set-version sv", "Устанавливает необходимую версию в файл VERSION",
5152
Новый КомандаSetVersion);
5253
Приложение.ДобавитьКоманду("plugins p", "Управление плагинами gitsync",
53-
Новый Командаplugins);
54+
Новый КомандаPlugins);
5455

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

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
Перем Лог;
3+
4+
Процедура ОписаниеКоманды(Команда) Экспорт
5+
6+
Команда.Опция("t timer", 0, "таймер повторения синхронизации, сек")
7+
.ТЧисло()
8+
.ВОкружении("GITSYNC_ALL_TIMER");
9+
10+
Команда.Опция("u storage-user", "", "пользователь хранилища конфигурации")
11+
.ТСтрока()
12+
.ВОкружении("GITSYNC_STORAGE_USER")
13+
.ПоУмолчанию("Администратор");
14+
15+
Команда.Опция("p storage-pwd", "", "пароль пользователя хранилища конфигурации")
16+
.ТСтрока()
17+
.ВОкружении("GITSYNC_STORAGE_PASSWORD GITSYNC_STORAGE_PWD");
18+
19+
Команда.Аргумент("CONFIG", "", "путь к файлу настройки пакетной синхронизации")
20+
.ТСтрока()
21+
.ВОкружении("GITSYNC_ALL_CONFIG")
22+
.Обязательный(Ложь)
23+
.ПоУмолчанию(ОбъединитьПути(ТекущийКаталог(), ПараметрыПриложения.ИмяФайлаНастройкиПакетнойСинхронизации()));
24+
25+
ПараметрыПриложения.ВыполнитьПодпискуПриРегистрацииКомандыПриложения(Команда);
26+
27+
КонецПроцедуры
28+
29+
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
30+
31+
Лог.Информация("Начало выполнение команды <sync>");
32+
33+
ПутьКФайлуНастроек = Команда.ЗначениеАргумента("CONFIG");
34+
35+
ПользовательХранилища = Команда.ЗначениеОпции("storage-user");
36+
ПарольПользователяХранилища = Команда.ЗначениеОпции("storage-pwd");
37+
38+
ИнтервалПовторенияСинхронизации = Команда.ЗначениеОпции("timer");
39+
40+
ФайлНастроек = Новый Файл(ПутьКФайлуНастроек);
41+
Если Не ФайлНастроек.Существует() Тогда
42+
ВызватьИсключение Новый ИнформацияОбОшибке(СтрШаблон("Файл настроек <%1> не найден"), "Работа приложения остановлена");
43+
КонецЕсли;
44+
45+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
46+
47+
ПакетнаяСинхронизация = Новый ПакетнаяСинхронизация();
48+
ПакетнаяСинхронизация.УстановитьНастройки(ФайлНастроек);
49+
ПакетнаяСинхронизация.ТаймерПовторения(ИнтервалПовторенияСинхронизации)
50+
.КаталогПлагинов(ФайлВключенныхПлагинов.КаталогПлагинов())
51+
.ФайлВключенныхПлагинов(ОбщиеПараметры.ФайлВключенныхПлагинов())
52+
.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
53+
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
54+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
55+
.УровеньЛога(ПараметрыПриложения.УровеньЛога())
56+
.АвторизацияВХранилищеКонфигурации(ПользовательХранилища, ПарольПользователяХранилища)
57+
58+
ПакетнаяСинхронизация.ВыполнитьСинхронизацию();
59+
60+
Лог.Информация("Завершено выполнение команды <all>");
61+
62+
КонецПроцедуры
63+
64+
Лог = ПараметрыПриложения.Лог();

src/cmd/Модули/ПараметрыПриложения.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
Возврат ОбъединитьПути(ПолучитьЛокальныйКаталогДанныхПриложения(), "plugins");
6868
КонецФункции
6969

70-
Функция ФайлВключенныхПлагинов()
70+
Функция ФайлВключенныхПлагинов() Экспорт
7171
Возврат ОбъединитьПути(ПолучитьЛокальныйКаталогДанныхПриложения(), "gitsync-plugins.json");
7272
КонецФункции
7373

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
Перем Лог; // Объект, для логирования
2+
Перем ЭтоWindows; // Булево, призная операционной системы WINDOWS
3+
Перем УдалятьВременныеФайлы; // Булево, признак удаления временных файлов
4+
Перем КоличествоЦикловОжиданияЛицензииПоУмолчанию; // Число, количество попыток получения лицензии
5+
6+
Перем АвторизацияВХранилище; // Структура ключи <Пользователь>, <ПарольПользователя>
7+
Перем ПутьКИсполняемомуФайлуGit; // Строка, полный путь к исполняемому файлу git
8+
9+
///////////////////////////////////////////////////////////////////////////////////////////////
10+
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
11+
12+
Перем ДоменПочтыДляGitПоУмолчанию Экспорт; // Строка, домен пользователей по умолчанию
13+
Перем ТекущаяВерсияПлатформы Экспорт; // Строка, используемая версия 1С.Предприятие
14+
15+
Перем ТаймерПовторения;
16+
Перем ПутьКФайлуНастроек;
17+
Перем КаталогПлагинов;
18+
Перем ПутьКФайлуВключенныхПлагинов;
19+
20+
#Область Публичное_API
21+
22+
// Устанавливает параметры авторизации в хранилище конфигурации 1С
23+
//
24+
// Параметры:
25+
// Пользователь - Строка - пользователь хранилища конфигурации 1С
26+
// Пароль - Строка - пароль пользователя хранилища конфигурации 1С
27+
//
28+
// Возвращаемое значение:
29+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
30+
//
31+
Функция АвторизацияВХранилищеКонфигурации(Знач Пользователь, Знач Пароль) Экспорт
32+
33+
Лог.Отладка("Установлена авторизация в хранилище пользователь <%1>, пароль <%2>", Пользователь, Пароль);
34+
АвторизацияВХранилище.Вставить("ПользовательХранилища" , Пользователь);
35+
АвторизацияВХранилище.Вставить("ПарольХранилища", Пароль);
36+
37+
Возврат ЭтотОбъект;
38+
39+
КонецФункции
40+
41+
// Устанавливает признак необходимости удаления временных файлов
42+
//
43+
// Параметры:
44+
// ПарамУдалятьВременныеФайлы - Булево - признак необходимости удаления временных файлов
45+
//
46+
// Возвращаемое значение:
47+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
48+
//
49+
Функция РежимУдаленияВременныхФайлов(Знач ПарамУдалятьВременныеФайлы) Экспорт
50+
51+
УдалятьВременныеФайлы = ПарамУдалятьВременныеФайлы;
52+
Возврат ЭтотОбъект;
53+
54+
КонецФункции
55+
56+
// Устанавливает количество циклов ожидания лицензий
57+
//
58+
// Параметры:
59+
// КоличествоЦиклов - Число - количество циклов ожидания лицензии
60+
//
61+
// Возвращаемое значение:
62+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
63+
//
64+
Функция ЦикловОжиданияЛицензии(Знач КоличествоЦиклов) Экспорт
65+
66+
КоличествоЦикловОжиданияЛицензииПоУмолчанию = КоличествоЦиклов;
67+
Возврат ЭтотОбъект;
68+
69+
КонецФункции
70+
71+
// Устанавливает уровень вывода логов
72+
//
73+
// Параметры:
74+
// НовыйУровеньЛога - Строка - уровень вывода лога
75+
//
76+
// Возвращаемое значение:
77+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
78+
//
79+
Функция УровеньЛога(Знач НовыйУровеньЛога) Экспорт
80+
81+
Лог.УстановитьУровень(НовыйУровеньЛога);
82+
Возврат ЭтотОбъект;
83+
84+
КонецФункции
85+
86+
// Устанавливает домен для почты по умолчанию
87+
//
88+
// Параметры:
89+
// НовыйДоменПочтыДляGit - Строка - новый домен для почты по умолчанию
90+
//
91+
// Возвращаемое значение:
92+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
93+
//
94+
Функция ДоменПочтыПоУмолчанию(Знач НовыйДоменПочтыДляGit) Экспорт
95+
96+
ДоменПочтыДляGitПоУмолчанию = НовыйДоменПочтыДляGit;
97+
Возврат ЭтотОбъект;
98+
99+
КонецФункции
100+
101+
// Устанавливает версию платформы 1С
102+
//
103+
// Параметры:
104+
// НоваяВерсияПлатформы - Строка - версия платформы 1С используемой для работы
105+
//
106+
// Возвращаемое значение:
107+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
108+
//
109+
Функция ВерсияПлатформы(Знач НоваяВерсияПлатформы) Экспорт
110+
111+
ТекущаяВерсияПлатформы = НоваяВерсияПлатформы;
112+
Возврат ЭтотОбъект;
113+
114+
КонецФункции
115+
116+
// Устанавливает путь к исполняемому файлу git
117+
//
118+
// Параметры:
119+
// НовыйПутьКИсполняемомуФайлуГит - Строка - путь к исполняемому файлу git
120+
//
121+
// Возвращаемое значение:
122+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
123+
//
124+
Функция ИсполняемыйФайлГит(Знач НовыйПутьКИсполняемомуФайлуГит) Экспорт
125+
126+
ПутьКИсполняемомуФайлуGit = НовыйПутьКИсполняемомуФайлуГит;
127+
Возврат ЭтотОбъект;
128+
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+
//
162+
// Возвращаемое значение:
163+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
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+
189+
ПакетнаяСинхронизация();
190+
191+
Если ТаймерПовторения <= 0 Тогда
192+
193+
Прервать;
194+
195+
Иначе
196+
197+
Лог.Информация("Ожидаем <%1> секунд перед новым циклом", ТаймерПовторения);
198+
Приостановить(ТаймерПовторения * 1000);
199+
200+
КонецЕсли;
201+
202+
КонецЦикла;
203+
204+
КонецПроцедуры
205+
206+
#КонецОбласти
207+
208+
Процедура ПакетнаяСинхронизация()
209+
210+
КонецПроцедуры
211+
212+
Процедура СинхронизацияРепозитория()
213+
214+
КонецПроцедуры

0 commit comments

Comments
 (0)