Skip to content

Commit 2aeff85

Browse files
authored
Merge pull request #229 from oscript-library/feature/tempfilres-fix
Удаление временных файлов после пакетной синхронизации
2 parents 6987bc0 + bb1dfb5 commit 2aeff85

File tree

6 files changed

+98
-14
lines changed

6 files changed

+98
-14
lines changed

features/cmd/step_definitions/shared.os

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
Перем БДД; //контекст фреймворка 1bdd
99

1010
Перем Лог;
11+
Перем ЭтоWindows;
12+
1113
// Метод выдает список шагов, реализованных в данном файле-шагов
1214
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
1315
БДД = КонтекстФреймворкаBDD;
@@ -221,15 +223,10 @@
221223

222224
Если НЕ ЭтоExe Тогда
223225

224-
Команда.УстановитьКоманду("oscript");
225-
Команда.ДобавитьПараметр("-encoding=utf-8");
226-
226+
УстановитьДвижок(Команда);
227227
Команда.ДобавитьПараметр(ОбернутьВКавычки(ПутьГитсинк));
228228
Иначе
229229

230-
СистемнаяИнформация = Новый СистемнаяИнформация;
231-
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
232-
233230
Если ЭтоWindows Тогда
234231
Команда.УстановитьКоманду(ПутьГитсинк); // Нельзя оборачивать в кавычки
235232
Иначе
@@ -370,7 +367,22 @@
370367
Возврат "Команда-" + ИмяКоманды;
371368
КонецФункции
372369

370+
Функция ЭтоWindows()
371+
Если ЭтоWindows = Неопределено Тогда
372+
СистемнаяИнформация = Новый СистемнаяИнформация;
373+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
374+
КонецЕсли;
375+
Возврат ЭтоWindows;
376+
КонецФункции
373377

378+
Процедура УстановитьДвижок(Команда)
379+
Команда.УстановитьКоманду("oscript");
380+
Если Не ЭтоWindows() Тогда
381+
Команда.ДобавитьПараметр("-encoding=utf-8");
382+
КонецЕсли;
383+
КонецПроцедуры
374384

375-
376-
Лог = Логирование.ПолучитьЛог(ИмяЛога());
385+
Лог = Логирование.ПолучитьЛог(ИмяЛога());
386+
387+
СистемнаяИнформация = Новый СистемнаяИнформация;
388+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;

features/core/step_definitions/shared.os

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
Перем БДД; //контекст фреймворка 1bdd
99

1010
Перем Лог;
11+
Перем ЭтоWindows;
12+
1113
// Метод выдает список шагов, реализованных в данном файле-шагов
1214
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
1315
БДД = КонтекстФреймворкаBDD;
@@ -202,8 +204,7 @@
202204

203205
ПутьГитсинк = ОбъединитьПути(КаталогГитсинк(), "src", "cmd", "gitsync.os");
204206
Команда = БДД.ПолучитьИзКонтекста(КлючКоманды(ИмяКоманды));
205-
Команда.УстановитьКоманду("oscript");
206-
Команда.ДобавитьПараметр("-encoding=utf-8");
207+
УстановитьДвижок(Команда);
207208

208209
// МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
209210
// МенеджерВременныхФайлов.БазовыйКаталог = ОбъединитьПути(КаталогГитсинк(), "coverage");
@@ -343,7 +344,20 @@
343344
Возврат "Команда-" + ИмяКоманды;
344345
КонецФункции
345346

347+
Функция ЭтоWindows()
348+
Если ЭтоWindows = Неопределено Тогда
349+
СистемнаяИнформация = Новый СистемнаяИнформация;
350+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
351+
КонецЕсли;
352+
Возврат ЭтоWindows;
353+
КонецФункции
346354

355+
Процедура УстановитьДвижок(Команда)
356+
Команда.УстановитьКоманду("oscript");
357+
Если Не ЭтоWindows() Тогда
358+
Команда.ДобавитьПараметр("-encoding=utf-8");
359+
КонецЕсли;
360+
КонецПроцедуры
347361

348362
Лог = Логирование.ПолучитьЛог(ИмяЛога());
349363
//Лог.УстановитьУровень(Логирование.ПолучитьЛог("bdd").Уровень());

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
.Версия("3.0.0")
44
.ВерсияСреды("1.0.21")
55
.ЗависитОт("logos", "1.2.1")
6-
.ЗависитОт("tempfiles", "0.2.2")
6+
.ЗависитОт("tempfiles", "1.0.0")
77
.ЗависитОт("v8runner", "1.3.0")
88
.ЗависитОт("gitrunner", "1.6.0")
99
.ЗависитОт("strings", "0.4.1")

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,8 @@
300300
СтрокаВерсии = ТаблицаИсторииХранилища.Найти(СледующаяВерсия, "НомерВерсии");
301301
Если СтрокаВерсии <> Неопределено Тогда
302302

303+
ВременныеФайлыДо = ВременныеФайлы.Файлы();
304+
303305
ОбработчикПодписок.ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия);
304306

305307
Попытка
@@ -319,12 +321,18 @@
319321
Исключение
320322
Лог.Отладка("Откатываем файл VERSION после ошибки");
321323
ЗаписатьФайлВерсийГит(КаталогРабочейКопии, ТекущаяВерсия);
324+
325+
Если УдалятьВременныеФайлы Тогда
326+
ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо);
327+
КонецЕсли;
328+
322329
ВызватьИсключение;
323330
КонецПопытки;
324331

325332
ТекущаяВерсия = СледующаяВерсия;
326333
ОбработчикПодписок.ПослеОбработкиВерсииХранилища(СтрокаВерсии, ТекущаяВерсия);
327-
334+
335+
ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо);
328336
КонецЕсли;
329337

330338
СледующаяВерсия = СледующаяВерсия + 1;

src/core/Классы/ПакетнаяСинхронизация.os

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@
221221

222222
КонецЦикла;
223223

224+
УдалитьВременныеФайлыПриНеобходимости();
225+
224226
КонецПроцедуры
225227

226228
// Выполняет пакетную синхронизацию
@@ -240,7 +242,13 @@
240242

241243
Лог.Информация("Начата синхронизация с репозиторием <%1> ", ИмяНастройкиСинхронизации);
242244

245+
ВременныеФайлыДо = ВременныеФайлы.Файлы();
246+
243247
РепоСинхронизации.Синхронизировать();
248+
249+
Если УдалятьВременныеФайлы Тогда
250+
ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо);
251+
КонецЕсли;
244252

245253
Если ТаймерПовторения <= 0 Тогда
246254

@@ -255,6 +263,8 @@
255263

256264
КонецЦикла;
257265

266+
УдалитьВременныеФайлыПриНеобходимости();
267+
258268
КонецПроцедуры
259269

260270
#КонецОбласти
@@ -327,10 +337,16 @@
327337
Лог.Информация("Начата пакетная синхронизация с <%1> репозиториями", ИндексРепозиториев.Количество());
328338

329339
Для каждого КлючЗначение Из ИндексРепозиториев Цикл
340+
341+
ВременныеФайлыДо = ВременныеФайлы.Файлы();
330342

331343
Репозиторий = КлючЗначение.Значение;
332344
Репозиторий.Синхронизировать();
333345

346+
Если УдалятьВременныеФайлы Тогда
347+
ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо);
348+
КонецЕсли;
349+
334350
КонецЦикла;
335351

336352
КонецПроцедуры
@@ -516,6 +532,26 @@
516532

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

535+
// Удаляет временные файлы при необходимости
536+
// Если передана пустая строка, то удаляются все зарегистрированные временные файлы
537+
//
538+
// Параметры:
539+
// ПутьКФайлу - Строка - полный путь файла или пустая строка
540+
//
541+
Процедура УдалитьВременныеФайлыПриНеобходимости(Знач ПутьКФайлу = "")
542+
543+
Если НЕ УдалятьВременныеФайлы Тогда
544+
Возврат;
545+
КонецЕсли;
546+
547+
Если ПутьКФайлу = "" Тогда
548+
ВременныеФайлы.Удалить();
549+
Иначе
550+
ВременныеФайлы.УдалитьФайл(ПутьКФайлу);
551+
КонецЕсли;
552+
553+
КонецПроцедуры
554+
519555
Процедура ПриСозданииОбъекта()
520556

521557
ИндексРепозиториев = Новый Соответствие;

tasks/coverage.os

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,26 @@
22
#Использовать coverage
33
#Использовать 1commands
44

5+
Функция ЭтоWindows()
6+
Если ЭтоWindows = Неопределено Тогда
7+
СистемнаяИнформация = Новый СистемнаяИнформация;
8+
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
9+
КонецЕсли;
10+
Возврат ЭтоWindows;
11+
КонецФункции
12+
13+
Процедура УстановитьДвижок(Команда)
14+
Команда.УстановитьКоманду("oscript");
15+
Если Не ЭтоWindows() Тогда
16+
Команда.ДобавитьПараметр("-encoding=utf-8");
17+
КонецЕсли;
18+
КонецПроцедуры
19+
520
ФС.ОбеспечитьПустойКаталог("coverage");
621
ПутьКСтат = "coverage/stat.json";
722

823
Команда = Новый Команда;
9-
Команда.УстановитьКоманду("oscript");
10-
Команда.ДобавитьПараметр("-encoding=utf-8");
24+
УстановитьДвижок(Команда);
1125
Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат));
1226
Команда.ДобавитьПараметр("tasks/test.os");
1327
Команда.ПоказыватьВыводНемедленно(Истина);

0 commit comments

Comments
 (0)