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