Skip to content

Добавил выгрузку с учетом increment #90

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Nov 9, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ exec\.log
bdd-log\.xml

*.ospx
oscript_modules/
9 changes: 5 additions & 4 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
.ВерсияСреды("1.0.16")
.ЗависитОт("logos")
.ЗависитОт("cmdline", "0.4.1")
.ЗависитОт("cmdline", "0.6.1")
.ЗависитОт("tempfiles")
.ЗависитОт("tool1cd", "0.4")
.ЗависитОт("v8runner", "0.7.0")
.ЗависитОт("gitrunner", "1.1.0")
.ЗависитОт("v8runner", "0.11.2")
.ЗависитОт("gitrunner", "1.5.0")
.ЗависитОт("strings")
.ЗависитОт("1commands", "1.1.1")
.ЗависитОт("1commands", "1.2.1")
.ЗависитОт("v8unpack")
.ЗависитОт("fs")
.ВключитьФайл("src")
.ВключитьФайл("tests")
.ВключитьФайл("features")
Expand Down
3 changes: 3 additions & 0 deletions src/core/Классы/КомандаExport.os
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-increment", "Частичная выгрузка конфигурации");


Парсер.ДобавитьКоманду(ОписаниеКоманды);
Expand All @@ -49,6 +50,7 @@
ПроверитьАвторовХранилища = ПараметрыКоманды["-check-authors"];
ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
АвтоматическаяУстановкаТэговПоВерсиям = ПараметрыКоманды["-auto-set-tags"];
ВыгружатьТолькоИзменения = ПараметрыКоманды["-increment"];

Если ЛокальныйКаталогГит = Неопределено Тогда

Expand Down Expand Up @@ -106,6 +108,7 @@
Распаковщик.ВерсияПлатформы = ПараметрыКоманды["-v8version"];
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"];
Распаковщик.ПереименовыватьФайлМодуляОбычнойФормы = ПереименовыватьФайлМодуляОбычнойФормы;
Распаковщик.ТолькоИзменения = ВыгружатьТолькоИзменения;
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников");
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик,
ПараметрыКоманды["ПутьКХранилищу"],
Expand Down
80 changes: 62 additions & 18 deletions src/core/Классы/МенеджерСинхронизации.os
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#Использовать 1commands
#Использовать v8unpack
#Использовать gitrunner
#Использовать fs

Перем Лог;
Перем мФайлПрограммыРаспаковки;
Expand All @@ -32,6 +33,7 @@
Перем ДоменПочтыДляGitПоУмолчанию Экспорт;
Перем ВерсияПлатформы Экспорт;
Перем ПереименовыватьФайлМодуляОбычнойФормы Экспорт;
Перем ТолькоИзменения Экспорт;

// Выполняет выгрузку конфигурации в файлы
// и распределение файлов по каталогам согласно иерархии метаданных.
Expand All @@ -49,9 +51,27 @@
СоздатьКаталог(ВыходнойКаталог);
КонецЕсли;

КаталогВыгрузки = ?(ТолькоИзменения, ВыходнойКаталог, КаталогПлоскойВыгрузки);
Попытка
ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогПлоскойВыгрузки, Формат);
РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат);
ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогВыгрузки, Формат);
Если НЕ ТолькоИзменения Тогда
РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат);
Иначе
МассивФайлов = НайтиФайлы(КаталогВыгрузки, "*.bin", Истина);
Для каждого Файл из МассивФайлов Цикл
Если Нрег(Файл.Имя) = "form.bin" Тогда
КаталогФормы = ОбъединитьПути(Файл.Путь, Файл.ИмяБезРасширения);
СоздатьКаталог(КаталогФормы);
ФС.ОбеспечитьПустойКаталог(КаталогФормы);
РаспаковатьКонтейнерМетаданных(Файл.ПолноеИмя, КаталогФормы);
КонецЕсли;
КонецЦикла;

Если Новый Файл(ОбъединитьПути(КаталогВыгрузки, "renames.txt")).Существует() Тогда
УдалитьВременныеФайлыПриНеобходимости(ОбъединитьПути(КаталогВыгрузки, "renames.txt"));
КонецЕсли;

КонецЕсли;
Исключение
УдалитьВременныеФайлыПриНеобходимости(КаталогПлоскойВыгрузки);
ВызватьИсключение;
Expand Down Expand Up @@ -115,18 +135,37 @@
СоздатьКаталог(КаталогПлоскойВыгрузки);
КонецЕсли;

МассивФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы());
Если МассивФайлов.Количество() <> 0 Тогда
ВызватьИсключение "В каталоге <"+КаталогПлоскойВыгрузки+"> не должно быть файлов";
КонецЕсли;
Если НЕ ТолькоИзменения Тогда
МассивФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы());
Если МассивФайлов.Количество() <> 0 Тогда
ВызватьИсключение "В каталоге <"+КаталогПлоскойВыгрузки+"> не должно быть файлов";
КонецЕсли;

ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
ПараметрыЗапуска.Добавить("/Visible");
ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат));
ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации);
ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
ПараметрыЗапуска.Добавить("/Visible");
ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат));
ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации);

ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска);

ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска);
Иначе
ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогПлоскойВыгрузки,"ConfigDumpInfo.xml"));
ТолькоИзмененияЕслиФайлЕсть = ?(ТекущийФайлВерсийМетаданных.Существует(), ТолькоИзменения, Ложь);
Попытка
Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогПлоскойВыгрузки, , ТолькоИзмененияЕслиФайлЕсть);
Исключение

ОписаниеОшибки = ОписаниеОшибки();
Если ПроверитьОписаниеОшибкиНаКритичность(ОписаниеОшибки) Тогда
УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки());
ВызватьИсключение;
КонецЕсли;
КонецПопытки;

УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки());

КонецЕсли;

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

Функция ПолучитьМенеджерКонфигуратора()
Expand Down Expand Up @@ -251,7 +290,7 @@

КопироватьФайл(Файл.ПолноеИмя, НовыйФайл.ПолноеИмя);

Если Нрег(Прав(Файл.ПолноеИмя, 5)) = ".form" Или Нрег(Файл.Имя) = "form.bin" Тогда
Если Нрег(Файл.Имя) = "form.bin" Тогда
КаталогФормы = ОбъединитьПути(НовыйКаталог.ПолноеИмя, НовыйФайл.ИмяБезРасширения);
СоздатьКаталог(КаталогФормы);
РаспаковатьКонтейнерМетаданных(НовыйФайл.ПолноеИмя, КаталогФормы, Переименования, ФайлВыгрузкиКаталог.ПолноеИмя + ПолучитьРазделительПути());
Expand Down Expand Up @@ -403,7 +442,7 @@

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

Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования, Знач КорневойКаталог)
Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования = "", Знач КорневойКаталог = "")

dllРаспаковать(ФайлРаспаковки, КаталогРаспаковки);
ВыполнитьСборкуМусора(); // см. камент к процедуре dllРаспаковать
Expand All @@ -415,10 +454,15 @@
СтароеИмяФайла = ФайлМодуля.ПолноеИмя;
НовоеИмяФайла = ОбъединитьПути(ФайлМодуля.Путь, "Module.bsl");
ПереместитьФайл(СтароеИмяФайла, НовоеИмяФайла);
ДобавитьПереименование(Переименования,
СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""),
СтрЗаменить(НовоеИмяФайла, КорневойКаталог, ""));

Если НЕ ПустаяСтрока(Переименования) Тогда
Если ПустаяСтрока(КорневойКаталог) Тогда
ВызватьИсключение
"РаспаковатьКонтейнерМетаданных при заполненном Переименования ожидали и не пустое КорневойКаталог";
КонецЕсли;
ДобавитьПереименование(Переименования,
СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""),
СтрЗаменить(НовоеИмяФайла, КорневойКаталог, ""));
КонецЕсли;
КонецЦикла;

КонецЕсли;
Expand Down Expand Up @@ -1421,7 +1465,6 @@
Возврат КоличествоЦикловОжиданияЛицензииПоУмолчанию;
КонецФункции


//////////////////////////////////////////////////////////////////////////////////////////////
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
Expand All @@ -1431,3 +1474,4 @@
ДоменПочтыДляGitПоУмолчанию = "localhost";
УдалятьВременныеФайлы = Ложь;
КоличествоЦикловОжиданияЛицензииПоУмолчанию = 1;
ТолькоИзменения = Ложь;