-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
1,027 additions
and
683 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
/////////////////////////////////////////////////////////////////// | ||
// | ||
// Служебный модуль с реализацией работы команды all | ||
// | ||
// Представляет собой модификацию приложения gitsync от | ||
// команды oscript-library | ||
// | ||
// Структура модуля реализована в соответствии с рекомендациями | ||
// oscript-app-template (C) EvilBeaver | ||
// | ||
/////////////////////////////////////////////////////////////////// | ||
|
||
Перем ДопПараметры; | ||
|
||
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт | ||
|
||
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Запускает синхронизацию по нескольким репозиториям"); | ||
|
||
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьКНастройкам", "Путь к файлу настроек синхронизатора."); | ||
|
||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-log", "<Путь к файлу лога>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-timer", "<Интервал срабатывания>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-force", "<on|off> принудительная синхронизация"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-debug", "<on|off>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-verbose", "<on|off>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>"); | ||
|
||
Парсер.ДобавитьКоманду(ОписаниеКоманды); | ||
|
||
КонецПроцедуры // ЗарегистрироватьКоманду | ||
|
||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт | ||
|
||
ДопПараметры = ДополнительныеПараметры; | ||
|
||
ИмяФайлаНастроек = ПараметрыКоманды["ПутьКНастройкам"]; | ||
Если ИмяФайлаНастроек = Неопределено Тогда | ||
|
||
МенеджерКомандПриложения.ПоказатьСправкуПоКомандам("all"); | ||
Возврат МенеджерКомандПриложения.РезультатыКоманд().НеверныеПараметры; | ||
|
||
КонецЕсли; | ||
|
||
КаталогRoot = ОбъединитьПути(ТекущийСценарий().Каталог, "..\..\"); | ||
|
||
Если ПараметрыКоманды["-log"] <> Неопределено Тогда | ||
|
||
Аппендер = Новый ВыводЛогаВФайл(); | ||
Аппендер.ОткрытьФайл(ПараметрыКоманды["-log"]); | ||
ДополнительныеПараметры.Лог.ДобавитьСпособВывода(Аппендер); | ||
Раскладка = ЗагрузитьСценарий(ОбъединитьПути(КаталогRoot, "log-layout.os")); | ||
ДополнительныеПараметры.Лог.УстановитьРаскладку(Раскладка); | ||
|
||
КонецЕсли; | ||
|
||
Интервал = 0; | ||
Если ПараметрыКоманды["-timer"] <> Неопределено Тогда | ||
|
||
Интервал = Число(ПараметрыКоманды["-timer"]); | ||
|
||
КонецЕсли; | ||
|
||
Контроллер = ЗагрузитьСценарий(ОбъединитьПути(КаталогRoot, "multi-controller.os")); | ||
|
||
Пока Истина Цикл | ||
|
||
Контроллер.ВыполнитьСинхронизациюПоФайлуНастроек(ЭтотОбъект, ИмяФайлаНастроек, ПараметрыКоманды["-force"] = Истина); | ||
|
||
Если Интервал <= 0 Тогда | ||
|
||
Прервать; | ||
|
||
Иначе | ||
|
||
ДополнительныеПараметры.Лог.Информация("Ожидаем " + Интервал + " секунд перед новым циклом"); | ||
Приостановить(Интервал * 1000); | ||
|
||
КонецЕсли; | ||
|
||
КонецЦикла; | ||
|
||
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; | ||
|
||
КонецФункции // ВыполнитьКоманду |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/////////////////////////////////////////////////////////////////// | ||
// | ||
// Служебный модуль с реализацией работы команды clone | ||
// | ||
// Представляет собой модификацию приложения gitsync от | ||
// команды oscript-library | ||
// | ||
// Структура модуля реализована в соответствии с рекомендациями | ||
// oscript-app-template (C) EvilBeaver | ||
// | ||
/////////////////////////////////////////////////////////////////// | ||
|
||
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт | ||
|
||
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Клонирует существующий репозиторий и создает служебные файлы"); | ||
|
||
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьКХранилищу", "Файловый путь к каталогу хранилища конфигурации 1С."); | ||
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "URLРепозитория", "Адрес удаленного репозитория GIT."); | ||
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ЛокальныйКаталогГит", "Каталог исходников внутри локальной копии git-репозитария."); | ||
|
||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-email", "<домен почты для пользователей git>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-debug", "<on|off>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-verbose", "<on|off>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>"); | ||
|
||
Парсер.ДобавитьКоманду(ОписаниеКоманды); | ||
|
||
КонецПроцедуры // ЗарегистрироватьКоманду | ||
|
||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт | ||
|
||
Распаковщик = РаспаковщикКонфигурации.ПолучитьИНастроитьРаспаковщик(ПараметрыКоманды, ДополнительныеПараметры); | ||
КаталогРабочейКопии = РаспаковщикКонфигурации.ПодготовитьКаталогНовойРабочейКопии(ПараметрыКоманды["ЛокальныйКаталогГит"]); | ||
|
||
URL = ПараметрыКоманды["URLРепозитория"]; | ||
Если ПустаяСтрока(URL) Тогда | ||
|
||
ВызватьИсключение "Не указан URL репозитария"; | ||
|
||
КонецЕсли; | ||
|
||
СоздатьКаталог(КаталогРабочейКопии); | ||
Результат = Распаковщик.КлонироватьРепозитарий(КаталогРабочейКопии, URL); | ||
Если Результат <> 0 Тогда | ||
|
||
ВызватьИсключение "git clone вернул код <" + Результат + ">"; | ||
|
||
КонецЕсли; | ||
|
||
РаспаковщикКонфигурации.НаполнитьКаталогРабочейКопииСлужебнымиДанными(КаталогРабочейКопии, Распаковщик, ПараметрыКоманды["ПутьКХранилищу"]); | ||
|
||
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; | ||
|
||
КонецФункции // ВыполнитьКоманду |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
/////////////////////////////////////////////////////////////////// | ||
// | ||
// Служебный модуль с реализацией работы команды export | ||
// | ||
// Представляет собой модификацию приложения gitsync от | ||
// команды oscript-library | ||
// | ||
// Структура модуля реализована в соответствии с рекомендациями | ||
// oscript-app-template (C) EvilBeaver | ||
// | ||
/////////////////////////////////////////////////////////////////// | ||
|
||
Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт | ||
|
||
ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, "Выполнить локальную синхронизацию, без pull/push"); | ||
|
||
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьКХранилищу", "Файловый путь к каталогу хранилища конфигурации 1С."); | ||
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ЛокальныйКаталогГит", "Каталог исходников внутри локальной копии git-репозитария."); | ||
|
||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-email", "<домен почты для пользователей git>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-v8version", "<Маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-debug", "<on|off>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-verbose", "<on|off>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-format", "<hierarchical|plain>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-minversion", "<номер минимальной версии для выгрузки>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-maxversion", "<номер максимальной версии для выгрузки>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-limit", "<выгрузить неболее limit версий от текущей выгруженной>"); | ||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>"); | ||
|
||
Парсер.ДобавитьКоманду(ОписаниеКоманды); | ||
|
||
КонецПроцедуры // ЗарегистрироватьКоманду | ||
|
||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры) Экспорт | ||
|
||
ЛокальныйКаталогГит = ПараметрыКоманды["ЛокальныйКаталогГит"]; | ||
Формат = ПараметрыКоманды["-format"]; | ||
МинВерсия = ПараметрыКоманды["-minversion"]; | ||
МаксВерсия = ПараметрыКоманды["-maxversion"]; | ||
Лимит = ПараметрыКоманды["-limit"]; | ||
|
||
Если ЛокальныйКаталогГит = Неопределено Тогда | ||
|
||
ЛокальныйКаталогГит = ТекущийКаталог(); | ||
|
||
КонецЕсли; | ||
|
||
Если Формат = Неопределено Тогда | ||
|
||
Формат = РежимВыгрузкиФайлов.Авто; | ||
|
||
КонецЕсли; | ||
|
||
Если МинВерсия = Неопределено Тогда | ||
|
||
МинВерсия = 0; | ||
|
||
КонецЕсли; | ||
|
||
Если МаксВерсия = Неопределено Тогда | ||
|
||
МаксВерсия = 0; | ||
|
||
КонецЕсли; | ||
|
||
Если Лимит = Неопределено Тогда | ||
|
||
Лимит = 0; | ||
|
||
КонецЕсли; | ||
|
||
МаксВерсия = Число(МаксВерсия); | ||
МинВерсия = Число(МинВерсия); | ||
Лимит = Число(Лимит); | ||
|
||
Распаковщик = РаспаковщикКонфигурации.ПолучитьИНастроитьРаспаковщик(ПараметрыКоманды, ДополнительныеПараметры); | ||
Распаковщик.ВерсияПлатформы = ПараметрыКоманды["-v8version"]; | ||
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"]; | ||
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников"); | ||
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик, ПараметрыКоманды["ПутьКХранилищу"], ЛокальныйКаталогГит, МинВерсия, МаксВерсия, Формат,,, Лимит); | ||
ДополнительныеПараметры.Лог.Информация("Выгрузка завершена"); | ||
|
||
Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; | ||
|
||
КонецФункции // ВыполнитьКоманду |
Oops, something went wrong.