Skip to content

Commit 87a1123

Browse files
committed
Merged release/1.1 into master
2 parents 28d329f + 17d00f8 commit 87a1123

File tree

4 files changed

+58
-8
lines changed

4 files changed

+58
-8
lines changed

features/opm-build.feature

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# language: ru
2+
3+
Функционал: Проверка сборки продукта
4+
Как Пользователь
5+
Я хочу автоматически проверять сборку моего продукта
6+
Чтобы гарантировать возможность установку моего продукта у пользователей
7+
8+
Контекст: Отключение отладки в логах
9+
Допустим Я выключаю отладку лога с именем "oscript.lib.commands"
10+
И Я очищаю параметры команды "opm" в контексте
11+
12+
Сценарий: Выполнение команды без параметров
13+
Когда Я добавляю параметр "build ." для команды "opm"
14+
И Я выполняю команду "opm"
15+
Тогда Вывод команды "opm" содержит "Сборка пакета завершена"
16+
И Вывод команды "opm" не содержит "Внешнее исключение"
17+
И Код возврата команды "opm" равен 0

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("1commands")
3-
.Версия("1.0")
3+
.Версия("1.1")
44
.ЗависитОт("logos")
55
.ЗависитОт("asserts")
66
.ЗависитОт("tempfiles")

src/Команда.os

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -311,17 +311,29 @@
311311
Если ПериодОпросаВМиллисекундах <> 0 Тогда
312312
Приостановить(ПериодОпросаВМиллисекундах);
313313
КонецЕсли;
314-
Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные Цикл
314+
Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Цикл
315315
Если ПериодОпросаВМиллисекундах <> 0 Тогда
316316
Приостановить(ПериодОпросаВМиллисекундах);
317317
КонецЕсли;
318318

319319
ОчереднаяСтрокаВывода = Процесс.ПотокВывода.Прочитать();
320-
ОчереднаяСтрокаВывода = СтрЗаменить(ОчереднаяСтрокаВывода, Символы.ВК, "");
321-
Если ОчереднаяСтрокаВывода <> "" Тогда
322-
Лог.Отладка("%2%1", ОчереднаяСтрокаВывода, Символы.ПС);
323-
ЗаписьXML.ЗаписатьБезОбработки(ОчереднаяСтрокаВывода);
324-
КонецЕсли;
320+
ОчереднаяСтрокаОшибок = Процесс.ПотокОшибок.Прочитать();
321+
322+
Если Не ПустаяСтрока(ОчереднаяСтрокаВывода) Тогда
323+
ОчереднаяСтрокаВывода = СтрЗаменить(ОчереднаяСтрокаВывода, Символы.ВК, "");
324+
Если ОчереднаяСтрокаВывода <> "" Тогда
325+
Лог.Отладка("%2%1", ОчереднаяСтрокаВывода, Символы.ПС);
326+
ЗаписьXML.ЗаписатьБезОбработки(ОчереднаяСтрокаВывода);
327+
КонецЕсли;
328+
КонецЕсли;
329+
330+
Если Не ПустаяСтрока(ОчереднаяСтрокаОшибок) Тогда
331+
ОчереднаяСтрокаОшибок = СтрЗаменить(ОчереднаяСтрокаОшибок, Символы.ВК, "");
332+
Если ОчереднаяСтрокаОшибок <> "" Тогда
333+
Лог.Отладка("%2%1", ОчереднаяСтрокаОшибок, Символы.ПС);
334+
ЗаписьXML.ЗаписатьБезОбработки(ОчереднаяСтрокаОшибок);
335+
КонецЕсли;
336+
КонецЕсли;
325337

326338
КонецЦикла;
327339

src/КомандныйФайл.os

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
Перем ЭтоWindows;
1212
Перем Лог;
1313
Перем НемедленнныйВывод;
14+
Перем КодировкаВывода;
1415

1516
// Получить имя лога продукта
1617
//
@@ -40,6 +41,25 @@
4041
Возврат Команда.ПолучитьВывод();
4142
КонецФункции
4243

44+
// Установить кодировку вывода для выполнения команды.
45+
//
46+
// Параметры:
47+
// Строка, Неопределено - кодировка вывода
48+
// Если Неопределено, кодировка сбрасывается и используется значение по умолчанию от операционной системы
49+
//
50+
Процедура УстановитьКодировкуВывода(Знач НоваяКодировкаВывода) Экспорт
51+
КодировкаВывода = НоваяКодировкаВывода;
52+
КонецПроцедуры
53+
54+
// Получить кодировка вывода выполняемой команды.
55+
//
56+
// Возвращаемое значение:
57+
// Строка - кодировка вывода команды
58+
//
59+
Функция ПолучитьКодировкуВывода() Экспорт
60+
Возврат КодировкаВывода;
61+
КонецФункции
62+
4363
// Получить код возврата выполненной команды.
4464
//
4565
// Возвращаемое значение:
@@ -102,7 +122,7 @@
102122
Закрыть();
103123

104124
Команда = Новый Команда;
105-
Команда.УстановитьКодировкуВывода(КодировкаТекста.OEM);
125+
Команда.УстановитьКодировкуВывода(КодировкаВывода);
106126
Команда.ПоказыватьВыводНемедленно(НемедленнныйВывод);
107127

108128
Если ЭтоWindows Тогда
@@ -202,6 +222,7 @@
202222

203223
ТекстФайла = "";
204224
НемедленнныйВывод = Истина;
225+
КодировкаВывода = КодировкаТекста.OEM;
205226

206227
Создать();
207228
КонецПроцедуры

0 commit comments

Comments
 (0)