You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-12-19 23:52:43 +02:00
Правки по CLI
This commit is contained in:
@@ -6,58 +6,74 @@
|
||||
Перем ОбъектОПИ;
|
||||
Перем Парсер;
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
ОбъектОПИ = Новый СвязьОПИ();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Область Основные
|
||||
|
||||
Процедура ОсновнойОбработчик()
|
||||
|
||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||
ОбъектОПИ = Новый СвязьОПИ();
|
||||
Команды = ОбъектОПИ.СоответствиеКомандМодулей;
|
||||
|
||||
Для Каждого Команда Из ОбъектОПИ.ПолучитьИмяМодуля() Цикл
|
||||
ДобавитьКомандуСправки();
|
||||
|
||||
Для Каждого Команда Из Команды Цикл
|
||||
СформироватьКоманду(Команда.Ключ, Парсер);
|
||||
КонецЦикла;
|
||||
|
||||
Результат = Парсер.Разобрать(АргументыКоманднойСтроки);
|
||||
ТекущаяКоманда = Результат["Команда"];
|
||||
|
||||
|
||||
Если ТекущаяКоманда = Неопределено Тогда
|
||||
Справка.ВывестиНачальнуюСтраницу();
|
||||
Справка.ВывестиНачальнуюСтраницу(Команды);
|
||||
Иначе
|
||||
ВыполнитьОбработкуКоманды(Результат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьКомандуСправки()
|
||||
|
||||
Парсер.ДобавитьПараметр("-h");
|
||||
Парсер.ДобавитьПараметр("-help");
|
||||
Парсер.ДобавитьПараметр("--help");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СформироватьКоманду(Знач Имя, Парсер)
|
||||
|
||||
Команда = Парсер.ОписаниеКоманды(Имя);
|
||||
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Имя).Скопировать();
|
||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
||||
|
||||
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
||||
|
||||
Парсер.ДобавитьКоманду(Команда);
|
||||
ТаблицаПараметров = ОбъектОПИ.СоответствиеТаблицПараметров[Имя];
|
||||
|
||||
Если Не ТаблицаПараметров = Неопределено Тогда
|
||||
|
||||
ТаблицаПараметров = ТаблицаПараметров.Скопировать();
|
||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
||||
|
||||
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "--help");
|
||||
|
||||
Парсер.ДобавитьКоманду(Команда);
|
||||
|
||||
Иначе
|
||||
Справка.ВывестиСообщениеИсключения("Команда");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьОбработкуКоманды(Знач Данные)
|
||||
|
||||
ТекущаяКоманда = Данные["Команда"];
|
||||
Параметры = Данные["ЗначенияПараметров"];
|
||||
Вывод = "";
|
||||
|
||||
Попытка
|
||||
|
||||
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Данные);
|
||||
ОбработатьВыводJSON(Вывод);
|
||||
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры);
|
||||
|
||||
Если ЗначениеЗаполнено(Вывод) Тогда
|
||||
ОбработатьВыводJSON(Вывод);
|
||||
Сообщить(Символы.ПС + Вывод + Символы.ПС, СтатусСообщения.Внимание);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -66,37 +82,33 @@
|
||||
Если ЗначениеЗаполнено(Вывод) Тогда
|
||||
Сообщить(Вывод);
|
||||
Иначе
|
||||
Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
|
||||
Сообщить(Символы.ПС);
|
||||
Справка.ВывестиСообщениеИсключения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Данные)
|
||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Параметры)
|
||||
|
||||
Модуль = ОбъектОПИ.ПолучитьИмяМодуля(Команда);
|
||||
Параметры = Данные["ЗначенияПараметров"];
|
||||
Модуль = ОбъектОПИ.СоответствиеКомандМодулей[Команда];
|
||||
Метод = Параметры["Метод"];
|
||||
Ответ = "<пустой возврат>";
|
||||
Ответ = "Функция вернула пустое значение";
|
||||
|
||||
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Команда);
|
||||
ТаблицаПараметров = ОбъектОПИ.СоответствиеТаблицПараметров[Команда];
|
||||
|
||||
Если Не ЗначениеЗаполнено(Метод) Тогда
|
||||
Если Не ЗначениеЗаполнено(Метод) Или Метод = "--help" Тогда
|
||||
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
||||
|
||||
Если Параметры.Количество() = 1 Тогда
|
||||
Если Параметры.Количество() = 2 Или Параметры["--help"] = Истина Тогда
|
||||
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода, Команда);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||
|
||||
Выполнить(ТекстВыполнения);
|
||||
|
||||
@@ -156,6 +168,7 @@
|
||||
|
||||
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
||||
Счетчик = Счетчик + 1;
|
||||
|
||||
Иначе
|
||||
СтрокаВызова = СтрокаВызова + " , ";
|
||||
КонецЕсли;
|
||||
@@ -176,8 +189,9 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
ПриСозданииОбъекта();
|
||||
Попытка
|
||||
ОсновнойОбработчик();
|
||||
|
||||
Исключение
|
||||
Справка.ВывестиСообщениеИсключения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user