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/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 73ae7eaf..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" @@ -300,6 +300,8 @@ СтрокаВерсии = ТаблицаИсторииХранилища.Найти(СледующаяВерсия, "НомерВерсии"); Если СтрокаВерсии <> Неопределено Тогда + ВременныеФайлыДо = ВременныеФайлы.Файлы(); + ОбработчикПодписок.ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия); Попытка @@ -319,12 +321,18 @@ Исключение Лог.Отладка("Откатываем файл VERSION после ошибки"); ЗаписатьФайлВерсийГит(КаталогРабочейКопии, ТекущаяВерсия); + + Если УдалятьВременныеФайлы Тогда + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + КонецЕсли; + ВызватьИсключение; КонецПопытки; ТекущаяВерсия = СледующаяВерсия; ОбработчикПодписок.ПослеОбработкиВерсииХранилища(СтрокаВерсии, ТекущаяВерсия); - + + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); КонецЕсли; СледующаяВерсия = СледующаяВерсия + 1; 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..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" @@ -221,6 +221,8 @@ КонецЦикла; + УдалитьВременныеФайлыПриНеобходимости(); + КонецПроцедуры // Выполняет пакетную синхронизацию @@ -240,7 +242,13 @@ Лог.Информация("Начата синхронизация с репозиторием <%1> ", ИмяНастройкиСинхронизации); + ВременныеФайлыДо = ВременныеФайлы.Файлы(); + РепоСинхронизации.Синхронизировать(); + + Если УдалятьВременныеФайлы Тогда + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + КонецЕсли; Если ТаймерПовторения <= 0 Тогда @@ -255,6 +263,8 @@ КонецЦикла; + УдалитьВременныеФайлыПриНеобходимости(); + КонецПроцедуры #КонецОбласти @@ -327,10 +337,16 @@ Лог.Информация("Начата пакетная синхронизация с <%1> репозиториями", ИндексРепозиториев.Количество()); Для каждого КлючЗначение Из ИндексРепозиториев Цикл + + ВременныеФайлыДо = ВременныеФайлы.Файлы(); Репозиторий = КлючЗначение.Значение; Репозиторий.Синхронизировать(); + Если УдалятьВременныеФайлы Тогда + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо); + КонецЕсли; + КонецЦикла; КонецПроцедуры @@ -516,6 +532,26 @@ КонецПроцедуры +// Удаляет временные файлы при необходимости +// Если передана пустая строка, то удаляются все зарегистрированные временные файлы +// +// Параметры: +// ПутьКФайлу - Строка - полный путь файла или пустая строка +// +Процедура УдалитьВременныеФайлыПриНеобходимости(Знач ПутьКФайлу = "") + + Если НЕ УдалятьВременныеФайлы Тогда + Возврат; + КонецЕсли; + + Если ПутьКФайлу = "" Тогда + ВременныеФайлы.Удалить(); + Иначе + ВременныеФайлы.УдалитьФайл(ПутьКФайлу); + КонецЕсли; + +КонецПроцедуры + Процедура ПриСозданииОбъекта() ИндексРепозиториев = Новый Соответствие; 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"); Команда.ПоказыватьВыводНемедленно(Истина);