1- /////////////////////////////////////////////////////////////////////////
1+ ////////////////////////////////////////////////////////////////////////
22//
3- // OneScript Package Manager
4- // Установщик пакетов для OneScript
5- // Выполняется, как os-приложение в командной строке:
3+ // CLI-интерфейс для oscript-app
4+ //
5+ //The MIT License (MIT)
6+ //
7+ // Copyright (c) 2016 Andrei Ovsiankin
8+ //
9+ // Permission is hereby granted, free of charge, to any person obtaining a copy
10+ // of this software and associated documentation files (the "Software"), to deal
11+ // in the Software without restriction, including without limitation the rights
12+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13+ // copies of the Software, and to permit persons to whom the Software is
14+ // furnished to do so, subject to the following conditions:
15+ //
16+ // The above copyright notice and this permission notice shall be included in all
17+ // copies or substantial portions of the Software.
18+ //
19+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25+ // SOFTWARE.
626//
7- // opm install my-package.ospx
8- //
9- /////////////////////////////////////////////////////////////////////////
27+ ///////////////////////////////////////////////////////////////////////
1028
1129#Использовать cmdline
12- #Использовать logos
13-
1430#Использовать "."
1531
1632Перем Лог ;
1733
18- Процедура ВыполнитьКоманду (Знач Аргументы )
19-
20- ОбработкаКоманд = СоздатьОбработчикКоманд();
21- Парсер = Новый ПарсерАргументовКоманднойСтроки();
22-
23- ОбработкаКоманд.ДобавитьОписанияКоманд(Парсер);
24-
25- ПараметрыКоманды = Парсер.РазобратьКоманду(Аргументы);
26- Если ПараметрыКоманды = Неопределено Тогда
27- ВывестиСправкуПоКомандам(ОбработкаКоманд);
28- ЗавершитьРаботу(1 );
29- КонецЕсли ;
30-
31- Попытка
32- ОбработкаКоманд.ВыполнитьКоманду(ПараметрыКоманды);
33- Исключение
34- Лог.Отладка(ОписаниеОшибки ());
35- Лог.Информация(КраткоеПредставлениеОшибки (ИнформацияОбОшибке ()));
36- ЗавершитьРаботу(1 );
37- КонецПопытки ;
38-
39- КонецПроцедуры
34+ /////////////////////////////////////////////////////////////////////////////////////////
4035
41- Процедура ВывестиСправкуПоКомандам (Знач ОбработкаКоманд )
42-
43- ОбработкаКоманд.ВывестиСправкуПоКомандам();
36+ Функция ПолучитьПарсерКоманднойСтроки ()
37+
38+ Парсер = Новый ПарсерАргументовКоманднойСтроки();
39+
40+ МенеджерКомандПриложенияOpm.ЗарегистрироватьКоманды(Парсер);
41+
42+ Возврат Парсер;
43+
44+ КонецФункции
45+
46+ Функция ПолезнаяРабота ()
47+ ПараметрыЗапуска = РазобратьАргументыКоманднойСтроки();
48+ Если ПараметрыЗапуска = Неопределено или ПараметрыЗапуска.Количество() = 0 Тогда
49+ Лог.Ошибка("Некорректные аргументы командной строки" );
50+ МенеджерКомандПриложенияOpm.ПоказатьСправкуПоКомандам();
51+ Возврат 1 ;
52+ КонецЕсли ;
4453
45- КонецПроцедуры
54+ НастройкиПриложенияOpm.УстановитьФайлНастроек(ОбъединитьПути(СтартовыйСценарий().Каталог , "opm.cfg" )) ;
4655
47- /////////////////////////////////////////////////////////////////////////
48- // Вспомогательные функции
56+ Если ТипЗнч (ПараметрыЗапуска) = Тип ("Структура" ) Тогда
57+ // это команда
58+ Команда = ПараметрыЗапуска.Команда;
59+ ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
60+ ИначеЕсли ЗначениеЗаполнено (ПараметрыСистемыOpm.ИмяКомандыПоУмолчанию()) Тогда
61+ // это команда по-умолчанию
62+ Команда = ПараметрыСистемыOpm.ИмяКомандыПоУмолчанию();
63+ ЗначенияПараметров = ПараметрыЗапуска;
64+ Иначе
65+ ВызватьИсключение "Некорректно настроено имя команды по-умолчанию." ;
66+ КонецЕсли ;
67+
68+ Возврат МенеджерКомандПриложенияOpm.ВыполнитьКоманду(Команда, ЗначенияПараметров);
69+
70+ КонецФункции
4971
50- Функция СоздатьОбработчикКоманд ()
51- Возврат Новый ДиспетчерКомандПриложения();
72+ Функция РазобратьАргументыКоманднойСтроки ()
73+ Парсер = ПолучитьПарсерКоманднойСтроки();
74+ Возврат Парсер.Разобрать(АргументыКоманднойСтроки);
5275КонецФункции
5376
5477/////////////////////////////////////////////////////////////////////////
55- // Точка входа
5678
57- Лог = Логирование.ПолучитьЛог(Константы .ИмяЛога);
79+ Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());
80+ МенеджерКомандПриложенияOpm.РегистраторКоманд(ПараметрыСистемыOpm);
5881
59- НастройкиПриложения.УстановитьФайлНастроек(ОбъединитьПути(СтартовыйСценарий().Каталог, "opm.cfg" ));
60- ВыполнитьКоманду(АргументыКоманднойСтроки);
82+ Попытка
83+ ЗавершитьРаботу(ПолезнаяРабота());
84+ Исключение
85+ Лог.КритичнаяОшибка(ОписаниеОшибки ());
86+ ЗавершитьРаботу(255 );
87+ КонецПопытки ;
0 commit comments