Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 201 additions & 0 deletions README.md

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант);
ВерсияПродукта = Константы_ЛокальнаяВерсия.ВерсияПродукта;
Иначе
ВерсияПродукта = "1.6.6";
ВерсияПродукта = "1.7.0";
КонецЕсли;

Описание.Имя("opm")
Expand All @@ -28,6 +28,7 @@
.ЗависитОт("gitrunner", "1.7.1")
.ЗависитОт("reflector", "0.7.1")
.ЗависитОт("semver", "1.0.0")
.ЗависитОт("1commands", "1.3.1")

// Зависимости для разработки, РазработкаЗависитОт() нельзя использовать
// т.к иначе не получится обновится из старой версии opm
Expand All @@ -39,6 +40,13 @@
.ВключитьФайл("src")
.ВключитьФайл("tasks")
.ВключитьФайл("oscript_modules")
.ОпределяетКласс("ВходВХаб", "src/core/Классы/ВходВХаб.os")
.ОпределяетКласс("ОкружениеПроцесса", "src/core/Классы/ОкружениеПроцесса.os")
.ОпределяетКласс("ЗапускательПрограмм", "src/core/Классы/ЗапускательПрограмм.os")
.ОпределяетКласс("ОткрывательБраузера", "src/core/Классы/ОткрывательБраузера.os")
.ОпределяетКласс("ЗапросчикHTTP", "src/core/Классы/ЗапросчикHTTP.os")
.ОпределяетКласс("ТокенКонвейераCI", "src/core/Классы/ТокенКонвейераCI.os")
.ОпределяетКласс("ОтправительПакета", "src/core/Классы/ОтправительПакета.os")
.ОпределяетКласс("КэшУстановленныхПакетов", "src/core/Классы/КэшУстановленныхПакетов.os")
.ОпределяетКласс("МенеджерПолученияПакетов", "src/core/Классы/МенеджерПолученияПакетов.os")
.ОпределяетКласс("МенеджерУстановкиПакетов", "src/core/Классы/МенеджерУстановкиПакетов.os")
Expand All @@ -47,6 +55,10 @@
.ОпределяетКласс("СерверПакетов", "src/core/Классы/СерверПакетов.os")
.ОпределяетКласс("СериализацияМетаданныхПакета", "src/core/Классы/СериализацияМетаданныхПакета.os")
.ОпределяетКласс("УстановкаПакета", "src/core/Классы/УстановкаПакета.os")
.ОпределяетМодуль("АдресаХаба", "src/core/Модули/АдресаХаба.os")
.ОпределяетМодуль("КонтрольныеСуммы", "src/core/Модули/КонтрольныеСуммы.os")
.ОпределяетМодуль("ОшибкиСети", "src/core/Модули/ОшибкиСети.os")
.ОпределяетМодуль("ФайлыНастроекOpm", "src/core/Модули/ФайлыНастроекOpm.os")
.ОпределяетМодуль("КонстантыOpm", "src/core/Модули/КонстантыOpm.os")
.ОпределяетМодуль("НастройкиOpm", "src/core/Модули/НастройкиOpm.os")
.ОпределяетМодуль("РаботаСВерсиями", "src/core/Модули/РаботаСВерсиями.os")
Expand Down
15 changes: 10 additions & 5 deletions src/cmd/opm.os
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#Использовать "../core"
#Использовать "."
#Использовать cli
#Использовать logos

Перем ЭтоWindows;

Expand All @@ -26,14 +27,15 @@
Приложение.ДобавитьКоманду("a app", НСтр("ru='Создать ';en='Create '") + ?(ЭтоWindows, "bat", "sh") + НСтр("ru='-файл для запуска скрипта в указанном каталоге';en='-file to run the script in the specified directory'"), Новый КомандаOpm_App);
Приложение.ДобавитьКоманду("b build", НСтр("ru='Собрать пакет из исходников';en='Build a package from source'"), Новый КомандаOpm_Build);
Приложение.ДобавитьКоманду("c config", НСтр("ru='Задать пользовательские настройки';en='Configure user settings'"), Новый КомандаOpm_Config);
Приложение.ДобавитьКоманду("i install", НСтр("ru='Выполнить установку пакета.
| Если указано имя пакета, происходит установка из хаба или из файла.
Приложение.ДобавитьКоманду("i install", НСтр("ru='Выполнить установку пакета.
| Если указано имя пакета, происходит установка из хаба или из файла.
| В обратном случае устанавливаются зависимости текущего пакета по файлу packagedef.'
|en='Install the package.
| If the package name is specified, the installation is performed from the hub or from the file.
| If the package name is specified, the installation is performed from the hub or from the file.
| Otherwise, the dependencies of the current package are set using the packagedef file.'"),
Новый КомандаOpm_Install);
Приложение.ДобавитьКоманду("ls list", НСтр("ru='Вывести список пакетов';en='Show list of packages'"), Новый КомандаOpm_List);
Приложение.ДобавитьКоманду("login", НСтр("ru='Войти в хаб пакетов и сохранить токен доступа';en='Log in to the package hub and store the access token'"), Новый КомандаOpm_Login);
Приложение.ДобавитьКоманду("pre prepare", НСтр("ru='Подготовить новый каталог разрабатываемого пакета';en='Prepare a new catalog for the development package'"), Новый КомандаOpm_Prepare);
Приложение.ДобавитьКоманду("p push", НСтр("ru='Отправить пакет в хаб пакетов';en='Send the package to the package hub'"), Новый КомандаOpm_Push);
Приложение.ДобавитьКоманду("r run", НСтр("ru='Выполнить произвольную задачу';en='Run a task'"), Новый КомандаOpm_Run);
Expand All @@ -44,7 +46,7 @@
НСтр("ru='Скачать файл пакета и файлы зависимостей';
|en='Download package and dependencies'"),
Новый КомандаOpm_Download);

Приложение.Запустить(АргументыКоманднойСтроки);

КонецПроцедуры
Expand All @@ -63,7 +65,10 @@
ЗавершитьРаботу(0);

Исключение
Сообщить(ОписаниеОшибки());
// человеку — суть, служебная обёртка с модулем и номером строки уходит в отладочный журнал
ПодробноеОписание = ОписаниеОшибки();
Логирование.ПолучитьЛог(КонстантыOpm.ИмяЛога).Отладка(ПодробноеОписание);
Сообщить(ОшибкиСети.Суть(ПодробноеОписание));

ВременныеФайлы.Удалить();

Expand Down
27 changes: 20 additions & 7 deletions src/cmd/Классы/КомандаOpm_Download.os
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@
КомандаПриложения.Опция("s skip-install-deps", Ложь, "признак пропуска установки зависимых пакетов");
КомандаПриложения.Опция("d dest", "", "Целевой каталог");

ОпцияЗеркала = КомандаПриложения.Опция("m mirror", "", "Указать имя сервера, с которого необходимо ставить пакеты.
| Доступные сервера прописываются в конфигурационном файле opm.cfg, параметр 'СервераПакетов'.")
ОпцияЗеркала = КомандаПриложения.Опция("m mirror", "", "УСТАРЕЛА. Указать имя сервера, с которого необходимо ставить пакеты.
| Доступные сервера прописываются в конфигурационном файле opm.cfg, параметр 'СервераПакетов'.
| Вместо неё указывайте адрес хаба прямо в аргументе: хост[:порт]/пул/пакет[@спецификация].")
.ВОкружении("OPM_HUB_MIRROR")
.ТПеречисление();

Expand All @@ -21,7 +22,12 @@
ОпцияЗеркала.Перечисление(ДоступноеЗеркало, ДоступноеЗеркало, "Сервер '" + ДоступноеЗеркало + "'");
КонецЦикла;

КомандаПриложения.Аргумент("PACKAGE", "", "Имя пакета в хабе. Чтобы установить конкретную версию, используйте ИмяПакета@ВерсияПакета")
ПараметрыПриложенияOpm.ОписатьОпцииПроверкиСуммы(КомандаПриложения);

КомандаПриложения.Аргумент("PACKAGE", "", "Имя пакета в хабе. После @ можно указать спецификацию:
| точную версию (пакет@1.0.0), имя тега (пакет@stable) или выражение версии (пакет@^1.4).
| Тег и выражение разрешает хаб; хаб, не принимающий параметр spec, отвечает отказом.
| Можно указать адрес хаба целиком: [схема://]хост[:порт]/пул/пакет[@спецификация].")
.ТМассивСтрок()
.Обязательный(Ложь);

Expand Down Expand Up @@ -58,6 +64,9 @@
Лог.Отладка("МассивПакетовКУстановке: %1", МассивПакетовКУстановке.Количество());
Лог.Отладка("НеобходимоУстановитьЗависимости: %1", НеобходимоУстановитьЗависимости);

ПараметрыПриложенияOpm.ПрименитьОпцииПроверкиСуммы(КомандаПриложения);
ПараметрыПриложенияOpm.ПредупредитьОбУстаревшемЗеркале(ИмяСервера);

НастройкаУстановки = РаботаСПакетами.ПолучитьНастройкуУстановки();
НастройкаУстановки.УстанавливатьЗависимости = НеобходимоУстановитьЗависимости;
НастройкаУстановки.УстанавливатьЗависимостиРазработчика = УстановкаПакетовРазработчика;
Expand Down Expand Up @@ -115,15 +124,19 @@
Для каждого ИмяПакета Из МассивПакетовКУстановке Цикл

Если ЭтоФайлПакета(ИмяПакета) Тогда

РаботаСПакетами.УстановитьПакетИзФайла(ИмяПакета, РежимУстановки, ЦелевойКаталог, НастройкаУстановки);


ИначеЕсли АдресаХаба.ЭтоАдресХаба(ИмяПакета) Тогда

РаботаСПакетами.УстановитьПакетПоАдресу(ИмяПакета, РежимУстановки, ЦелевойКаталог, НастройкаУстановки);

Иначе

РаботаСПакетами.УстановитьПакетИзОблака(ИмяПакета, РежимУстановки, ЦелевойКаталог, НастройкаУстановки);

КонецЕсли;

КонецЦикла;

КонецЕсли;
Expand Down
Loading
Loading