From 89d5578442f964a8d5f9f3039d19de113fe8139f Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 09:26:02 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20=D0=BF=D0=BE=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BD=D0=BE=D0=B9?= =?UTF-8?q?=20=D1=81=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\267\320\260\321\206\320\270\321\217.os" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" index 48b2f144..3f443c7a 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" @@ -221,6 +221,8 @@ КонецЦикла; + УдалитьВременныеФайлыПриНеобходимости(); + КонецПроцедуры // Выполняет пакетную синхронизацию @@ -255,6 +257,8 @@ КонецЦикла; + УдалитьВременныеФайлыПриНеобходимости(); + КонецПроцедуры #КонецОбласти @@ -516,6 +520,26 @@ КонецПроцедуры +// Удаляет временные файлы при необходимости +// Если передана пустая строка, то удаляются все зарегистрированные временные файлы +// +// Параметры: +// ПутьКФайлу - Строка - полный путь файла или пустая строка +// +Процедура УдалитьВременныеФайлыПриНеобходимости(Знач ПутьКФайлу = "") + + Если НЕ УдалятьВременныеФайлы Тогда + Возврат; + КонецЕсли; + + Если ПутьКФайлу = "" Тогда + ВременныеФайлы.Удалить(); + Иначе + ВременныеФайлы.УдалитьФайл(ПутьКФайлу); + КонецЕсли; + +КонецПроцедуры + Процедура ПриСозданииОбъекта() ИндексРепозиториев = Новый Соответствие; From a01d06befa45199a9eed24198f7c4d32fde0390e Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 17 Jan 2020 20:37:28 +0300 Subject: [PATCH 2/3] =?UTF-8?q?-=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2,=20=D1=81=D0=BE=D0=B7?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BD=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B4=D0=BD=D0=BE=D0=B9=20=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D1=81=D0=B8=D0=BD=D1=85?= =?UTF-8?q?=D1=80=D0=BE=D0=BD=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20-=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BD=D0=B5?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=BD=D1=83=D1=8E=20=D0=BA=D0=BE=D0=B4=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=BA=D1=83=20=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BD=D0=B0=20Windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/cmd/step_definitions/shared.os | 28 +++++++++++----- features/core/step_definitions/shared.os | 18 ++++++++-- ...20\267\320\260\321\206\320\270\320\270.os" | 33 ++++++++++++++++++- tasks/coverage.os | 18 ++++++++-- 4 files changed, 84 insertions(+), 13 deletions(-) diff --git a/features/cmd/step_definitions/shared.os b/features/cmd/step_definitions/shared.os index 30784c14..be60e6d9 100644 --- a/features/cmd/step_definitions/shared.os +++ b/features/cmd/step_definitions/shared.os @@ -8,6 +8,8 @@ Перем БДД; //контекст фреймворка 1bdd Перем Лог; +Перем ЭтоWindows; + // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт БДД = КонтекстФреймворкаBDD; @@ -221,15 +223,10 @@ Если НЕ ЭтоExe Тогда - Команда.УстановитьКоманду("oscript"); - Команда.ДобавитьПараметр("-encoding=utf-8"); - + УстановитьДвижок(Команда); Команда.ДобавитьПараметр(ОбернутьВКавычки(ПутьГитсинк)); Иначе - СистемнаяИнформация = Новый СистемнаяИнформация; - ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; - Если ЭтоWindows Тогда Команда.УстановитьКоманду(ПутьГитсинк); // Нельзя оборачивать в кавычки Иначе @@ -370,7 +367,22 @@ Возврат "Команда-" + ИмяКоманды; КонецФункции +Функция ЭтоWindows() + Если ЭтоWindows = Неопределено Тогда + СистемнаяИнформация = Новый СистемнаяИнформация; + ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + КонецЕсли; + Возврат ЭтоWindows; +КонецФункции +Процедура УстановитьДвижок(Команда) + Команда.УстановитьКоманду("oscript"); + Если Не ЭтоWindows() Тогда + Команда.ДобавитьПараметр("-encoding=utf-8"); + КонецЕсли; +КонецПроцедуры - -Лог = Логирование.ПолучитьЛог(ИмяЛога()); \ No newline at end of file +Лог = Логирование.ПолучитьЛог(ИмяЛога()); + +СистемнаяИнформация = Новый СистемнаяИнформация; +ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; diff --git a/features/core/step_definitions/shared.os b/features/core/step_definitions/shared.os index 21cbc2e4..3ec3e64e 100644 --- a/features/core/step_definitions/shared.os +++ b/features/core/step_definitions/shared.os @@ -8,6 +8,8 @@ Перем БДД; //контекст фреймворка 1bdd Перем Лог; +Перем ЭтоWindows; + // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт БДД = КонтекстФреймворкаBDD; @@ -202,8 +204,7 @@ ПутьГитсинк = ОбъединитьПути(КаталогГитсинк(), "src", "cmd", "gitsync.os"); Команда = БДД.ПолучитьИзКонтекста(КлючКоманды(ИмяКоманды)); - Команда.УстановитьКоманду("oscript"); - Команда.ДобавитьПараметр("-encoding=utf-8"); + УстановитьДвижок(Команда); // МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов; // МенеджерВременныхФайлов.БазовыйКаталог = ОбъединитьПути(КаталогГитсинк(), "coverage"); @@ -343,7 +344,20 @@ Возврат "Команда-" + ИмяКоманды; КонецФункции +Функция ЭтоWindows() + Если ЭтоWindows = Неопределено Тогда + СистемнаяИнформация = Новый СистемнаяИнформация; + ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + КонецЕсли; + Возврат ЭтоWindows; +КонецФункции +Процедура УстановитьДвижок(Команда) + Команда.УстановитьКоманду("oscript"); + Если Не ЭтоWindows() Тогда + Команда.ДобавитьПараметр("-encoding=utf-8"); + КонецЕсли; +КонецПроцедуры Лог = Логирование.ПолучитьЛог(ИмяЛога()); //Лог.УстановитьУровень(Логирование.ПолучитьЛог("bdd").Уровень()); diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" index 73ae7eaf..064e5ebe 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" @@ -300,6 +300,8 @@ СтрокаВерсии = ТаблицаИсторииХранилища.Найти(СледующаяВерсия, "НомерВерсии"); Если СтрокаВерсии <> Неопределено Тогда + ВременныеФайлыДо = ВременныеФайлы.Файлы(); + ОбработчикПодписок.ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия); Попытка @@ -319,12 +321,16 @@ Исключение Лог.Отладка("Откатываем файл VERSION после ошибки"); ЗаписатьФайлВерсийГит(КаталогРабочейКопии, ТекущаяВерсия); + + УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + ВызватьИсключение; КонецПопытки; ТекущаяВерсия = СледующаяВерсия; ОбработчикПодписок.ПослеОбработкиВерсииХранилища(СтрокаВерсии, ТекущаяВерсия); - + + УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); КонецЕсли; СледующаяВерсия = СледующаяВерсия + 1; @@ -1506,6 +1512,31 @@ КонецПроцедуры +Процедура УдалитьНакопленныеВременныеФайлы(Знач ВременныеФайлыДо) + ВременныеФайлыПосле = ВременныеФайлы.Файлы(); + + ОтборФайлов = Новый Соответствие; + СкопироватьКоллекцию(ВременныеФайлыДо, ОтборФайлов); + + КрайнийИндекс = ВременныеФайлыПосле.Количество()-1; + Для Сч = 0 По КрайнийИндекс Цикл + + Индекс = КрайнийИндекс-Сч; + ИмяВременногоФайла = ВременныеФайлыПосле[Индекс]; + Если ОтборФайлов.Получить(ИмяВременногоФайла) = Неопределено + И ВременныеФайлы.БезопасноУдалитьФайл(ИмяВременногоФайла) Тогда + ВременныеФайлыПосле.Удалить(Индекс); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура СкопироватьКоллекцию(Массив, Приемник) + Для каждого Значение Из Массив Цикл + Приемник.Вставить(Значение, Значение); + КонецЦикла; +КонецПроцедуры Процедура УстановитьОбработчикПодписок(НовыйИндексПодписчиков) ОбработчикПодписок.УстановитьПодписчиков(НовыйИндексПодписчиков); diff --git a/tasks/coverage.os b/tasks/coverage.os index bad9c65a..b6299f02 100644 --- a/tasks/coverage.os +++ b/tasks/coverage.os @@ -2,12 +2,26 @@ #Использовать coverage #Использовать 1commands +Функция ЭтоWindows() + Если ЭтоWindows = Неопределено Тогда + СистемнаяИнформация = Новый СистемнаяИнформация; + ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + КонецЕсли; + Возврат ЭтоWindows; +КонецФункции + +Процедура УстановитьДвижок(Команда) + Команда.УстановитьКоманду("oscript"); + Если Не ЭтоWindows() Тогда + Команда.ДобавитьПараметр("-encoding=utf-8"); + КонецЕсли; +КонецПроцедуры + ФС.ОбеспечитьПустойКаталог("coverage"); ПутьКСтат = "coverage/stat.json"; Команда = Новый Команда; -Команда.УстановитьКоманду("oscript"); -Команда.ДобавитьПараметр("-encoding=utf-8"); +УстановитьДвижок(Команда); Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат)); Команда.ДобавитьПараметр("tasks/test.os"); Команда.ПоказыватьВыводНемедленно(Истина); From bb1dfb5bfa73b126ccebecc80dc4bff56709becb Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 18 Jan 2020 14:39:54 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=B4=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2,=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5=D0=B4=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=B8=D1=82=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D1=81=D0=B8?= =?UTF-8?q?=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BE=D1=82=20=D0=BD=D1=83=D0=B6=D0=BD=D0=BE=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20tempfiles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packagedef | 2 +- ...20\267\320\260\321\206\320\270\320\270.os" | 31 +++---------------- ...20\267\320\260\321\206\320\270\321\217.os" | 12 +++++++ 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/packagedef b/packagedef index 5af44ae1..721076a9 100644 --- a/packagedef +++ b/packagedef @@ -3,7 +3,7 @@ .Версия("3.0.0") .ВерсияСреды("1.0.21") .ЗависитОт("logos", "1.2.1") - .ЗависитОт("tempfiles", "0.2.2") + .ЗависитОт("tempfiles", "1.0.0") .ЗависитОт("v8runner", "1.3.0") .ЗависитОт("gitrunner", "1.6.0") .ЗависитОт("strings", "0.4.1") diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" index 064e5ebe..c80250eb 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" @@ -322,7 +322,9 @@ Лог.Отладка("Откатываем файл VERSION после ошибки"); ЗаписатьФайлВерсийГит(КаталогРабочейКопии, ТекущаяВерсия); - УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + Если УдалятьВременныеФайлы Тогда + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + КонецЕсли; ВызватьИсключение; КонецПопытки; @@ -330,7 +332,7 @@ ТекущаяВерсия = СледующаяВерсия; ОбработчикПодписок.ПослеОбработкиВерсииХранилища(СтрокаВерсии, ТекущаяВерсия); - УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); КонецЕсли; СледующаяВерсия = СледующаяВерсия + 1; @@ -1512,31 +1514,6 @@ КонецПроцедуры -Процедура УдалитьНакопленныеВременныеФайлы(Знач ВременныеФайлыДо) - ВременныеФайлыПосле = ВременныеФайлы.Файлы(); - - ОтборФайлов = Новый Соответствие; - СкопироватьКоллекцию(ВременныеФайлыДо, ОтборФайлов); - - КрайнийИндекс = ВременныеФайлыПосле.Количество()-1; - Для Сч = 0 По КрайнийИндекс Цикл - - Индекс = КрайнийИндекс-Сч; - ИмяВременногоФайла = ВременныеФайлыПосле[Индекс]; - Если ОтборФайлов.Получить(ИмяВременногоФайла) = Неопределено - И ВременныеФайлы.БезопасноУдалитьФайл(ИмяВременногоФайла) Тогда - ВременныеФайлыПосле.Удалить(Индекс); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -Процедура СкопироватьКоллекцию(Массив, Приемник) - Для каждого Значение Из Массив Цикл - Приемник.Вставить(Значение, Значение); - КонецЦикла; -КонецПроцедуры Процедура УстановитьОбработчикПодписок(НовыйИндексПодписчиков) ОбработчикПодписок.УстановитьПодписчиков(НовыйИндексПодписчиков); diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" index 3f443c7a..bcc8e3c0 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\320\272\320\265\321\202\320\275\320\260\321\217\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217.os" @@ -242,7 +242,13 @@ Лог.Информация("Начата синхронизация с репозиторием <%1> ", ИмяНастройкиСинхронизации); + ВременныеФайлыДо = ВременныеФайлы.Файлы(); + РепоСинхронизации.Синхронизировать(); + + Если УдалятьВременныеФайлы Тогда + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + КонецЕсли; Если ТаймерПовторения <= 0 Тогда @@ -331,10 +337,16 @@ Лог.Информация("Начата пакетная синхронизация с <%1> репозиториями", ИндексРепозиториев.Количество()); Для каждого КлючЗначение Из ИндексРепозиториев Цикл + + ВременныеФайлыДо = ВременныеФайлы.Файлы(); Репозиторий = КлючЗначение.Значение; Репозиторий.Синхронизировать(); + Если УдалятьВременныеФайлы Тогда + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + КонецЕсли; + КонецЦикла; КонецПроцедуры