Skip to content

Commit 4ed6e4b

Browse files
pumbaEOartbear
authored andcommitted
Добавил выгрузку с учетом increment (#90)
* Добавил инкрементальную выгрузку в исходники * Исправление зависимостей пакетов
1 parent f2095ec commit 4ed6e4b

File tree

4 files changed

+71
-22
lines changed

4 files changed

+71
-22
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ exec\.log
66
bdd-log\.xml
77

88
*.ospx
9+
oscript_modules/

packagedef

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
66
.ВерсияСреды("1.0.16")
77
.ЗависитОт("logos")
8-
.ЗависитОт("cmdline", "0.4.1")
8+
.ЗависитОт("cmdline", "0.6.1")
99
.ЗависитОт("tempfiles")
1010
.ЗависитОт("tool1cd", "0.4")
11-
.ЗависитОт("v8runner", "0.7.0")
12-
.ЗависитОт("gitrunner", "1.1.0")
11+
.ЗависитОт("v8runner", "0.11.2")
12+
.ЗависитОт("gitrunner", "1.5.0")
1313
.ЗависитОт("strings")
14-
.ЗависитОт("1commands", "1.1.1")
14+
.ЗависитОт("1commands", "1.2.1")
1515
.ЗависитОт("v8unpack")
16+
.ЗависитОт("fs")
1617
.ВключитьФайл("src")
1718
.ВключитьФайл("tests")
1819
.ВключитьФайл("features")

src/core/Классы/КомандаExport.os

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений");
3333
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-stop-if-empty-comment", "Остановить, если Комментарий к версии пустой");
3434
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-auto-set-tags", "Автоматическая установка тэгов по версия конфиграции");
35+
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-increment", "Частичная выгрузка конфигурации");
3536

3637

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

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

@@ -112,6 +114,7 @@
112114
Распаковщик.ВерсияПлатформы = ПараметрыКоманды["-v8version"];
113115
Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыКоманды["-email"];
114116
Распаковщик.ПереименовыватьФайлМодуляОбычнойФормы = ПереименовыватьФайлМодуляОбычнойФормы;
117+
Распаковщик.ТолькоИзменения = ВыгружатьТолькоИзменения;
115118
ДополнительныеПараметры.Лог.Информация("Начинаю выгрузку исходников");
116119
РаспаковщикКонфигурации.ВыполнитьЭкспортИсходников(Распаковщик,
117120
ПараметрыКоманды["ПутьКХранилищу"],

src/core/Классы/МенеджерСинхронизации.os

Lines changed: 62 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#Использовать 1commands
1616
#Использовать v8unpack
1717
#Использовать gitrunner
18+
#Использовать fs
1819

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

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

54+
КаталогВыгрузки = ?(ТолькоИзменения, ВыходнойКаталог, КаталогПлоскойВыгрузки);
5255
Попытка
53-
ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогПлоскойВыгрузки, Формат);
54-
РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат);
56+
ВыгрузитьМодулиКонфигурации(ФайлКонфигурации, КаталогВыгрузки, Формат);
57+
Если НЕ ТолькоИзменения Тогда
58+
РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогПлоскойВыгрузки, ВыходнойКаталог, Формат);
59+
Иначе
60+
МассивФайлов = НайтиФайлы(КаталогВыгрузки, "*.bin", Истина);
61+
Для каждого Файл из МассивФайлов Цикл
62+
Если Нрег(Файл.Имя) = "form.bin" Тогда
63+
КаталогФормы = ОбъединитьПути(Файл.Путь, Файл.ИмяБезРасширения);
64+
СоздатьКаталог(КаталогФормы);
65+
ФС.ОбеспечитьПустойКаталог(КаталогФормы);
66+
РаспаковатьКонтейнерМетаданных(Файл.ПолноеИмя, КаталогФормы);
67+
КонецЕсли;
68+
КонецЦикла;
69+
70+
Если Новый Файл(ОбъединитьПути(КаталогВыгрузки, "renames.txt")).Существует() Тогда
71+
УдалитьВременныеФайлыПриНеобходимости(ОбъединитьПути(КаталогВыгрузки, "renames.txt"));
72+
КонецЕсли;
73+
74+
КонецЕсли;
5575
Исключение
5676
УдалитьВременныеФайлыПриНеобходимости(КаталогПлоскойВыгрузки);
5777
ВызватьИсключение;
@@ -115,18 +135,37 @@
115135
СоздатьКаталог(КаталогПлоскойВыгрузки);
116136
КонецЕсли;
117137

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

123-
ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
124-
ПараметрыЗапуска.Добавить("/Visible");
125-
ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат));
126-
ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации);
144+
ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска();
145+
ПараметрыЗапуска.Добавить("/Visible");
146+
ПараметрДампаКонфигурации = СтрШаблон("/DumpConfigToFiles ""%1"" -format %2", КаталогПлоскойВыгрузки, ТРег(Формат));
147+
ПараметрыЗапуска.Добавить(ПараметрДампаКонфигурации);
148+
149+
ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска);
127150

128-
ВыполнитьКомандуКонфигуратора(Конфигуратор, ПараметрыЗапуска);
151+
Иначе
152+
ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогПлоскойВыгрузки,"ConfigDumpInfo.xml"));
153+
ТолькоИзмененияЕслиФайлЕсть = ?(ТекущийФайлВерсийМетаданных.Существует(), ТолькоИзменения, Ложь);
154+
Попытка
155+
Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогПлоскойВыгрузки, , ТолькоИзмененияЕслиФайлЕсть);
156+
Исключение
157+
158+
ОписаниеОшибки = ОписаниеОшибки();
159+
Если ПроверитьОписаниеОшибкиНаКритичность(ОписаниеОшибки) Тогда
160+
УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки());
161+
ВызватьИсключение;
162+
КонецЕсли;
163+
КонецПопытки;
164+
165+
УдалитьВременныеФайлыПриНеобходимости(Конфигуратор.КаталогСборки());
129166

167+
КонецЕсли;
168+
130169
КонецПроцедуры
131170

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

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

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

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

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

408447
dllРаспаковать(ФайлРаспаковки, КаталогРаспаковки);
409448
ВыполнитьСборкуМусора(); // см. камент к процедуре dllРаспаковать
@@ -415,10 +454,15 @@
415454
СтароеИмяФайла = ФайлМодуля.ПолноеИмя;
416455
НовоеИмяФайла = ОбъединитьПути(ФайлМодуля.Путь, "Module.bsl");
417456
ПереместитьФайл(СтароеИмяФайла, НовоеИмяФайла);
418-
ДобавитьПереименование(Переименования,
419-
СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""),
420-
СтрЗаменить(НовоеИмяФайла, КорневойКаталог, ""));
421-
457+
Если НЕ ПустаяСтрока(Переименования) Тогда
458+
Если ПустаяСтрока(КорневойКаталог) Тогда
459+
ВызватьИсключение
460+
"РаспаковатьКонтейнерМетаданных при заполненном Переименования ожидали и не пустое КорневойКаталог";
461+
КонецЕсли;
462+
ДобавитьПереименование(Переименования,
463+
СтрЗаменить(СтароеИмяФайла, КорневойКаталог, ""),
464+
СтрЗаменить(НовоеИмяФайла, КорневойКаталог, ""));
465+
КонецЕсли;
422466
КонецЦикла;
423467

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

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

0 commit comments

Comments
 (0)