Skip to content

Commit 136717f

Browse files
committed
Merge branch 'release/v0.9.5'
2 parents 016b4d9 + 8bd0ec5 commit 136717f

36 files changed

+898
-449
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
oscript_modules/
2+
test-reports/

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,7 @@ OneScript Package Manager
1919

2020
Справка из википедии: [Система управления пакетами](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)
2121

22+
# Сервера
23+
В настоящее время пакеты хранятся на двух серверах:
24+
- [hub.oscript.io](http://hub.oscript.io/download) - основной хаб пакетов
25+
- [hub.oscript.ru](http://hub.oscript.ru/download) - вторичный хаб пакетов. Используется, когда не удаётся получить данные с основного хаба

packagedef

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

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

55
Описание.Имя("opm")
@@ -8,6 +8,7 @@
88
.ЗависитОт("logos")
99
.ЗависитОт("cmdline")
1010
.ЗависитОт("tempfiles")
11+
.ЗависитОт("1testrunner")
1112
.ВключитьФайл("src")
1213
.ОпределяетКласс("ОписаниеПакета", "src/Классы/ОписаниеПакета.os")
1314
.ИсполняемыйФайл("src/opm.os");

src/opm.os

+51-38
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,73 @@
1-
/////////////////////////////////////////////////////////////////////////
1+
///////////////////////////////////////////////////////////////////////////
22
//
33
// OneScript Package Manager
44
// Установщик пакетов для OneScript
55
// Выполняется, как os-приложение в командной строке:
66
//
77
// opm install my-package.ospx
88
//
9-
/////////////////////////////////////////////////////////////////////////
9+
////////////////////////////////////////////////////////////////////////
10+
//
11+
// CLI-интерфейс для oscript-app
12+
//
13+
///////////////////////////////////////////////////////////////////////
1014

1115
#Использовать cmdline
12-
#Использовать logos
13-
1416
#Использовать "."
1517

1618
Перем Лог;
1719

18-
Процедура ВыполнитьКоманду(Знач Аргументы)
19-
20-
ОбработкаКоманд = СоздатьОбработчикКоманд();
21-
Парсер = Новый ПарсерАргументовКоманднойСтроки();
22-
23-
ОбработкаКоманд.ДобавитьОписанияКоманд(Парсер);
24-
25-
ПараметрыКоманды = Парсер.РазобратьКоманду(Аргументы);
26-
Если ПараметрыКоманды = Неопределено Тогда
27-
ВывестиСправкуПоКомандам(ОбработкаКоманд);
28-
ЗавершитьРаботу(1);
29-
КонецЕсли;
30-
31-
Попытка
32-
ОбработкаКоманд.ВыполнитьКоманду(ПараметрыКоманды);
33-
Исключение
34-
Лог.Отладка(ОписаниеОшибки());
35-
Лог.Информация(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
36-
ЗавершитьРаботу(1);
37-
КонецПопытки;
38-
39-
КонецПроцедуры
20+
/////////////////////////////////////////////////////////////////////////////////////////
4021

41-
Процедура ВывестиСправкуПоКомандам(Знач ОбработкаКоманд)
42-
43-
ОбработкаКоманд.ВывестиСправкуПоКомандам();
22+
Функция ПолучитьПарсерКоманднойСтроки()
23+
24+
Парсер = Новый ПарсерАргументовКоманднойСтроки();
25+
26+
МенеджерКомандПриложенияOpm.ЗарегистрироватьКоманды(Парсер);
27+
28+
Возврат Парсер;
29+
30+
КонецФункции
31+
32+
Функция ПолезнаяРабота()
33+
ПараметрыЗапуска = РазобратьАргументыКоманднойСтроки();
34+
Если ПараметрыЗапуска = Неопределено или ПараметрыЗапуска.Количество() = 0 Тогда
35+
Лог.Ошибка("Некорректные аргументы командной строки");
36+
МенеджерКомандПриложенияOpm.ПоказатьСправкуПоКомандам();
37+
Возврат 1;
38+
КонецЕсли;
4439

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

47-
/////////////////////////////////////////////////////////////////////////
48-
// Вспомогательные функции
42+
Если ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
43+
// это команда
44+
Команда = ПараметрыЗапуска.Команда;
45+
ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
46+
ИначеЕсли ЗначениеЗаполнено(ПараметрыСистемыOpm.ИмяКомандыПоУмолчанию()) Тогда
47+
// это команда по-умолчанию
48+
Команда = ПараметрыСистемыOpm.ИмяКомандыПоУмолчанию();
49+
ЗначенияПараметров = ПараметрыЗапуска;
50+
Иначе
51+
ВызватьИсключение "Некорректно настроено имя команды по-умолчанию.";
52+
КонецЕсли;
53+
54+
Возврат МенеджерКомандПриложенияOpm.ВыполнитьКоманду(Команда, ЗначенияПараметров);
55+
56+
КонецФункции
4957

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

5463
/////////////////////////////////////////////////////////////////////////
55-
// Точка входа
5664

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

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

0 commit comments

Comments
 (0)