Skip to content

Commit

Permalink
Merge branch 'release/v0.9.5'
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed May 1, 2017
2 parents 016b4d9 + 8bd0ec5 commit 136717f
Show file tree
Hide file tree
Showing 36 changed files with 898 additions and 449 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
oscript_modules/
test-reports/
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ OneScript Package Manager

Справка из википедии: [Система управления пакетами](https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%D0%BC%D0%B8)

# Сервера
В настоящее время пакеты хранятся на двух серверах:
- [hub.oscript.io](http://hub.oscript.io/download) - основной хаб пакетов
- [hub.oscript.ru](http://hub.oscript.ru/download) - вторичный хаб пакетов. Используется, когда не удаётся получить данные с основного хаба
3 changes: 2 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

ПутьКСценариюКонстант = ОбъединитьПути(ТекущийСценарий().Каталог, "src", "Модули", "Константы.os");
ПутьКСценариюКонстант = ОбъединитьПути(ТекущийСценарий().Каталог, "src", "Модули", "КонстантыOpm.os");
Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант);

Описание.Имя("opm")
Expand All @@ -8,6 +8,7 @@
.ЗависитОт("logos")
.ЗависитОт("cmdline")
.ЗависитОт("tempfiles")
.ЗависитОт("1testrunner")
.ВключитьФайл("src")
.ОпределяетКласс("ОписаниеПакета", "src/Классы/ОписаниеПакета.os")
.ИсполняемыйФайл("src/opm.os");
89 changes: 51 additions & 38 deletions src/opm.os
Original file line number Diff line number Diff line change
@@ -1,60 +1,73 @@
/////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//
// OneScript Package Manager
// Установщик пакетов для OneScript
// Выполняется, как os-приложение в командной строке:
//
// opm install my-package.ospx
//
/////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//
// CLI-интерфейс для oscript-app
//
///////////////////////////////////////////////////////////////////////

#Использовать cmdline
#Использовать logos

#Использовать "."

Перем Лог;

Процедура ВыполнитьКоманду(Знач Аргументы)

ОбработкаКоманд = СоздатьОбработчикКоманд();
Парсер = Новый ПарсерАргументовКоманднойСтроки();

ОбработкаКоманд.ДобавитьОписанияКоманд(Парсер);

ПараметрыКоманды = Парсер.РазобратьКоманду(Аргументы);
Если ПараметрыКоманды = Неопределено Тогда
ВывестиСправкуПоКомандам(ОбработкаКоманд);
ЗавершитьРаботу(1);
КонецЕсли;

Попытка
ОбработкаКоманд.ВыполнитьКоманду(ПараметрыКоманды);
Исключение
Лог.Отладка(ОписаниеОшибки());
Лог.Информация(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗавершитьРаботу(1);
КонецПопытки;

КонецПроцедуры
/////////////////////////////////////////////////////////////////////////////////////////

Процедура ВывестиСправкуПоКомандам(Знач ОбработкаКоманд)

ОбработкаКоманд.ВывестиСправкуПоКомандам();
Функция ПолучитьПарсерКоманднойСтроки()

Парсер = Новый ПарсерАргументовКоманднойСтроки();

МенеджерКомандПриложенияOpm.ЗарегистрироватьКоманды(Парсер);

Возврат Парсер;

КонецФункции

Функция ПолезнаяРабота()
ПараметрыЗапуска = РазобратьАргументыКоманднойСтроки();
Если ПараметрыЗапуска = Неопределено или ПараметрыЗапуска.Количество() = 0 Тогда
Лог.Ошибка("Некорректные аргументы командной строки");
МенеджерКомандПриложенияOpm.ПоказатьСправкуПоКомандам();
Возврат 1;
КонецЕсли;

КонецПроцедуры
НастройкиПриложенияOpm.УстановитьФайлНастроек(ОбъединитьПути(СтартовыйСценарий().Каталог, "opm.cfg"));

/////////////////////////////////////////////////////////////////////////
// Вспомогательные функции
Если ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
// это команда
Команда = ПараметрыЗапуска.Команда;
ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
ИначеЕсли ЗначениеЗаполнено(ПараметрыСистемыOpm.ИмяКомандыПоУмолчанию()) Тогда
// это команда по-умолчанию
Команда = ПараметрыСистемыOpm.ИмяКомандыПоУмолчанию();
ЗначенияПараметров = ПараметрыЗапуска;
Иначе
ВызватьИсключение "Некорректно настроено имя команды по-умолчанию.";
КонецЕсли;

Возврат МенеджерКомандПриложенияOpm.ВыполнитьКоманду(Команда, ЗначенияПараметров);

КонецФункции

Функция СоздатьОбработчикКоманд()
Возврат Новый ДиспетчерКомандПриложения();
Функция РазобратьАргументыКоманднойСтроки()
Парсер = ПолучитьПарсерКоманднойСтроки();
Возврат Парсер.Разобрать(АргументыКоманднойСтроки);
КонецФункции

/////////////////////////////////////////////////////////////////////////
// Точка входа

Лог = Логирование.ПолучитьЛог(Константы.ИмяЛога);
Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());
МенеджерКомандПриложенияOpm.РегистраторКоманд(ПараметрыСистемыOpm);

НастройкиПриложения.УстановитьФайлНастроек(ОбъединитьПути(СтартовыйСценарий().Каталог, "opm.cfg"));
ВыполнитьКоманду(АргументыКоманднойСтроки);
Попытка
ЗавершитьРаботу(ПолезнаяРабота());
Исключение
Лог.КритичнаяОшибка(ОписаниеОшибки());
ЗавершитьРаботу(255);
КонецПопытки;
Loading

0 comments on commit 136717f

Please sign in to comment.