mirror of
https://github.com/alei1180/curlone.git
synced 2025-11-25 23:01:55 +02:00
refactor: Перенос обработки аргументов команды в отдельную функцию
This commit is contained in:
@@ -59,26 +59,16 @@
|
||||
НомерКоманды = НомерКоманды + 1;
|
||||
ОписаниеЗапроса = Новый ОписаниеЗапроса();
|
||||
|
||||
Если Не ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд) Тогда
|
||||
Возврат ПустойРезультат;
|
||||
КонецЕсли;
|
||||
|
||||
АргументыКоманды.Удалить(0); // Удаляем curl
|
||||
|
||||
Попытка
|
||||
Приложение = СоздатьКонсольноеПриложение();
|
||||
Команда = Приложение.ПолучитьКоманду();
|
||||
Команда.УстановитьДействиеВывестиСправку(ЭтотОбъект, "Заглушка");
|
||||
Приложение.Запустить(АргументыКоманды);
|
||||
Исключение
|
||||
ОбработатьИсключениеОбработкиКоманды(ИнформацияОбОшибке());
|
||||
Возврат ПустойРезультат;
|
||||
КонецПопытки;
|
||||
ОбработатьАргументыКоманды(АргументыКоманды, НомерКоманды, КоличествоКоманд);
|
||||
|
||||
ПроверитьНаличиеURL(ОписаниеЗапроса);
|
||||
ПроверитьПоддержкуПротокола(ОписаниеЗапроса, Генератор.ПоддерживаемыеПротоколы());
|
||||
|
||||
СгенерированныйКод = Генератор.Получить(ОписаниеЗапроса, ИсходящиеОшибки);
|
||||
СгенерированныйКод = "";
|
||||
Если Не ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
|
||||
СгенерированныйКод = Генератор.Получить(ОписаниеЗапроса, ИсходящиеОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
ВывестиСгенерированныйКодКоманды(Результат, СгенерированныйКод, НомерКоманды, КоличествоКоманд);
|
||||
|
||||
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
|
||||
@@ -1085,7 +1075,24 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьИсключениеОбработкиКоманды(ИнформацияОбОшибке)
|
||||
Процедура ОбработатьАргументыКоманды(АргументыКоманды, НомерКоманды, КоличествоКоманд)
|
||||
|
||||
ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд);
|
||||
|
||||
АргументыКоманды.Удалить(0); // Удаляем curl
|
||||
|
||||
Попытка
|
||||
Приложение = СоздатьКонсольноеПриложение();
|
||||
Команда = Приложение.ПолучитьКоманду();
|
||||
Команда.УстановитьДействиеВывестиСправку(ЭтотОбъект, "Заглушка");
|
||||
Приложение.Запустить(АргументыКоманды);
|
||||
Исключение
|
||||
ОбработатьИсключениеЗапускаКонсольногоПриложения(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьИсключениеЗапускаКонсольногоПриложения(ИнформацияОбОшибке)
|
||||
|
||||
Текст = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||
|
||||
@@ -1126,44 +1133,47 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд)
|
||||
|
||||
Если (НРег(АргументыКоманды[0]) = "curl") Тогда
|
||||
Возврат Истина;
|
||||
Процедура ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд)
|
||||
|
||||
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НомерКомандыТекст = ?(КоличествоКоманд > 1, СтрШаблон("#%1 ", НомерКоманды), "");
|
||||
Текст = СтрШаблон("Команда %1должна начинаться с ""curl"", но вместо этого начинается с %2", НомерКомандыТекст, АргументыКоманды[0]);
|
||||
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(Текст));
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
Если Не (НРег(АргументыКоманды[0]) = "curl") Тогда
|
||||
НомерКомандыТекст = ?(КоличествоКоманд > 1, СтрШаблон("#%1 ", НомерКоманды), "");
|
||||
Текст = СтрШаблон("Команда %1должна начинаться с ""curl"", но вместо этого начинается с %2", НомерКомандыТекст, АргументыКоманды[0]);
|
||||
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(Текст));
|
||||
КонецЕсли;
|
||||
|
||||
Функция ПроверитьНаличиеURL(ОписаниеЗапроса)
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьНаличиеURL(ОписаниеЗапроса)
|
||||
|
||||
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеЗапроса.АдресаРесурсов.Количество() = 0 Тогда
|
||||
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка("Не указан URL"));
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
КонецПроцедуры
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПроверитьПоддержкуПротокола(ОписаниеЗапроса, ПоддерживаемыеПротоколы)
|
||||
Процедура ПроверитьПоддержкуПротокола(ОписаниеЗапроса, ПоддерживаемыеПротоколы)
|
||||
|
||||
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ОписаниеРесурса Из ОписаниеЗапроса.АдресаРесурсов Цикл
|
||||
СтруктураURL = Новый ПарсерURL(ОписаниеРесурса.URL);
|
||||
Если ПоддерживаемыеПротоколы.Найти(СтруктураURL.Схема) = Неопределено Тогда
|
||||
ТекстОшибки = СтрШаблон("Протокол ""%1"" не поддерживается", СтруктураURL.Схема);
|
||||
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(ТекстОшибки));
|
||||
Возврат Ложь;
|
||||
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(ТекстОшибки));
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиРазделительКоманд(Результат, НомерКоманды, КоличествоКоманд)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user