Skip to content

Commit 626934a

Browse files
committed
#23 Исправлена ошибка вывода версии. При отсутсвии других опций и арг.
1 parent 9c40cc4 commit 626934a

File tree

3 files changed

+51
-22
lines changed

3 files changed

+51
-22
lines changed

src/core/Классы/cmd/КомандаПриложения.os

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -139,19 +139,6 @@
139139
// Содержит код определение необходимости вывода версии приложения
140140
Процедура ПередВыполнениемКоманды(Знач Команда) Экспорт
141141

142-
Если Команда.Приложение = Неопределено Тогда
143-
Возврат;
144-
КонецЕсли;
145-
146-
Лог.Отладка("Выполнение метода <ПередВыполнениемКоманды>");
147-
Если НЕ Команда.Приложение.ФлагВерсия = Неопределено
148-
И Команда.Приложение.ФлагВерсия.Значение Тогда
149-
150-
ВывестиВерсию();
151-
ЗавершитьРаботу(0);
152-
153-
КонецЕсли;
154-
155142
КонецПроцедуры
156143

157144
// Предопределенная процедура ПослеВыполненияКоманды команды, если не задана процедура в классе.
@@ -591,7 +578,7 @@
591578

592579
КонецЦикла;
593580

594-
АргументыCLI = Новый ФиксированныйМассив(НовыйМассивАргументов)
581+
АргументыCLI = Новый ФиксированныйМассив(НовыйМассивАргументов);
595582

596583
КонецПроцедуры
597584

@@ -639,7 +626,6 @@
639626
Для каждого КлючЗначение Из Опции Цикл
640627

641628
КлассОпции = КлючЗначение.Ключ;
642-
КлассОпции.ИзФайла();
643629
КлассОпции.ИзПеременнойОкружения();
644630

645631
Для каждого ИмяПараметра Из КлассОпции.НаименованияПараметров Цикл
@@ -657,7 +643,6 @@
657643
Для каждого КлючЗначение Из Аргументы Цикл
658644

659645
КлассАргумента = КлючЗначение.Ключ;
660-
КлассАргумента.ИзФайла();
661646
КлассАргумента.ИзПеременнойОкружения();
662647

663648
Для каждого ИмяПараметра Из КлассАргумента.НаименованияПараметров Цикл
@@ -953,12 +938,6 @@
953938

954939
#Область Вспомогательные процедуры и функции
955940

956-
Процедура ВывестиВерсию()
957-
958-
Сообщить(Приложение.ВерсияПриложения);
959-
960-
КонецПроцедуры
961-
962941
Процедура ВывестиПутьПарсераВОтладке()
963942

964943
Если Лог.Уровень() = УровниЛога.Отладка Тогда

src/core/Классы/КонсольноеПриложение.os

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,15 @@
5555
Аргументы = АргументыКоманднойСтрокиВходящие;
5656
КонецЕсли;
5757

58+
Если Тип("ПараметрКоманды") = ТипЗнч(ФлагВерсия)
59+
И ЗначениеЗаполнено(ВерсияПриложения)
60+
И ФлагУстановлен(Аргументы, ФлагВерсия) Тогда
61+
62+
ВывестиВерсию();
63+
ЗавершитьРаботу(0);
64+
65+
КонецЕсли;
66+
5867
Команда.НачалоЗапуска();
5968
Команда.Запуск(Аргументы);
6069

@@ -163,6 +172,34 @@
163172

164173
КонецПроцедуры
165174

175+
Процедура ВывестиВерсию()
176+
177+
Сообщить(ВерсияПриложения);
178+
179+
КонецПроцедуры
180+
181+
Функция ФлагУстановлен(Знач АргументыCLI, Знач ОпцияФлаг)
182+
183+
Если АргументыCLI.Количество() = 0 Тогда
184+
Возврат Ложь;
185+
КонецЕсли;
186+
187+
ПервыйАргумент = АргументыCLI[0];
188+
МассивИменОпции = ОпцияФлаг.НаименованияПараметров;
189+
190+
Для каждого ИмяФлага Из МассивИменОпции Цикл
191+
192+
Если АргументыCLI[0] = ИмяФлага Тогда
193+
Возврат Истина;
194+
КонецЕсли;
195+
196+
КонецЦикла;
197+
198+
Возврат ложь;;
199+
200+
КонецФункции
201+
202+
166203
Процедура ПриСозданииОбъекта(Знач Наименование, Знач Описание, Знач КлассРеализацииОсновныйКоманды = Неопределено)
167204

168205
НаименованиеПриложения = Наименование;

tests/КонсольноеПриложение_test.os

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
//ИменаТестов.Добавить("ТестДолжен_ПроверитьПриложения");
1515
ИменаТестов.Добавить("ТестДолжен_ПараметрыПеречисленияОпции");
1616
ИменаТестов.Добавить("ТестДолжен_ПараметрыПеречисленияОпцииВыводHelp");
17+
ИменаТестов.Добавить("ТестДолжен_ПроверитьВыводВерсииПриложения");
1718

1819
Возврат ИменаТестов;
1920

@@ -46,6 +47,18 @@
4647

4748
КонецПроцедуры
4849

50+
Процедура ТестДолжен_ПроверитьВыводВерсииПриложения() Экспорт
51+
52+
Приложение = Новый КонсольноеПриложение("cp", "");
53+
Приложение.Версия("v version", "1.0");
54+
ВходящиеАргументы = Новый Массив;
55+
ВходящиеАргументы.Добавить("-v");
56+
57+
// TODO: При выполнении этого теста происходить завершение тестирования
58+
// Переписать после написания нормального флоу
59+
//Приложение.Запустить(ВходящиеАргументы);
60+
61+
КонецПроцедуры
4962

5063
Процедура ТестДолжен_ПараметрыПеречисленияОпции() Экспорт
5164

0 commit comments

Comments
 (0)