1
0
mirror of https://github.com/alei1180/curlone.git synced 2025-11-25 23:01:55 +02:00

refactor: Перенос обработки аргументов команды в отдельную функцию

This commit is contained in:
Dmitry Ivanov
2025-01-10 23:46:12 +03:00
parent d4674dfaae
commit 05142c1879

View File

@@ -59,26 +59,16 @@
НомерКоманды = НомерКоманды + 1;
ОписаниеЗапроса = Новый ОписаниеЗапроса();
Если Не ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд) Тогда
Возврат ПустойРезультат;
КонецЕсли;
АргументыКоманды.Удалить(0); // Удаляем curl
Попытка
Приложение = СоздатьКонсольноеПриложение();
Команда = Приложение.ПолучитьКоманду();
Команда.УстановитьДействиеВывестиСправку(ЭтотОбъект, "Заглушка");
Приложение.Запустить(АргументыКоманды);
Исключение
ОбработатьИсключениеОбработкиКоманды(ИнформацияОбОшибке());
Возврат ПустойРезультат;
КонецПопытки;
ОбработатьАргументыКоманды(АргументыКоманды, НомерКоманды, КоличествоКоманд);
ПроверитьНаличиеURL(ОписаниеЗапроса);
ПроверитьПоддержкуПротокола(ОписаниеЗапроса, Генератор.ПоддерживаемыеПротоколы());
СгенерированныйКод = "";
Если Не ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
СгенерированныйКод = Генератор.Получить(ОписаниеЗапроса, ИсходящиеОшибки);
КонецЕсли;
ВывестиСгенерированныйКодКоманды(Результат, СгенерированныйКод, НомерКоманды, КоличествоКоманд);
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
@@ -1085,7 +1075,24 @@
КонецФункции
Процедура ОбработатьИсключениеОбработкиКоманды(ИнформацияОбОшибке)
Процедура ОбработатьАргументыКоманды(АргументыКоманды, НомерКоманды, КоличествоКоманд)
ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд);
АргументыКоманды.Удалить(0); // Удаляем curl
Попытка
Приложение = СоздатьКонсольноеПриложение();
Команда = Приложение.ПолучитьКоманду();
Команда.УстановитьДействиеВывестиСправку(ЭтотОбъект, "Заглушка");
Приложение.Запустить(АргументыКоманды);
Исключение
ОбработатьИсключениеЗапускаКонсольногоПриложения(ИнформацияОбОшибке());
КонецПопытки;
КонецПроцедуры
Процедура ОбработатьИсключениеЗапускаКонсольногоПриложения(ИнформацияОбОшибке)
Текст = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
@@ -1126,44 +1133,47 @@
КонецПроцедуры
Функция ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд)
Процедура ПроверитьЧтоКомандаНачинаетсяСCurl(АргументыКоманды, НомерКоманды, КоличествоКоманд)
Если (НРег(АргументыКоманды[0]) = "curl") Тогда
Возврат Истина;
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
Возврат;
КонецЕсли;
Если Не (НРег(АргументыКоманды[0]) = "curl") Тогда
НомерКомандыТекст = ?(КоличествоКоманд > 1, СтрШаблон("#%1 ", НомерКоманды), "");
Текст = СтрШаблон("Команда %1должна начинаться с ""curl"", но вместо этого начинается с %2", НомерКомандыТекст, АргументыКоманды[0]);
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(Текст));
Возврат Ложь;
КонецЕсли;
КонецФункции
КонецПроцедуры
Функция ПроверитьНаличиеURL(ОписаниеЗапроса)
Процедура ПроверитьНаличиеURL(ОписаниеЗапроса)
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
Возврат;
КонецЕсли;
Если ОписаниеЗапроса.АдресаРесурсов.Количество() = 0 Тогда
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка("Не указан URL"));
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецПроцедуры
КонецФункции
Процедура ПроверитьПоддержкуПротокола(ОписаниеЗапроса, ПоддерживаемыеПротоколы)
Функция ПроверитьПоддержкуПротокола(ОписаниеЗапроса, ПоддерживаемыеПротоколы)
Если ОбщегоНазначения.ЕстьКритичныеОшибки(ИсходящиеОшибки) Тогда
Возврат;
КонецЕсли;
Для Каждого ОписаниеРесурса Из ОписаниеЗапроса.АдресаРесурсов Цикл
СтруктураURL = Новый ПарсерURL(ОписаниеРесурса.URL);
Если ПоддерживаемыеПротоколы.Найти(СтруктураURL.Схема) = Неопределено Тогда
ТекстОшибки = СтрШаблон("Протокол ""%1"" не поддерживается", СтруктураURL.Схема);
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(ТекстОшибки));
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
КонецПроцедуры
Процедура ВывестиРазделительКоманд(Результат, НомерКоманды, КоличествоКоманд)