﻿// Описание пакета OpenHub — открытого хаба пакетов OneScript.

// Зависимости едут в пакете не каталогом oscript_modules, а рантайм-закрытием .ЗависитОт из него:
// без dev-зависимостей, посторонних библиотек и частей, которых хаб не грузит (tools/ПоставкаЗависимостей.os).
// Каталог разработчика сборка только читает.
//
// Параметры:
//   РабочийКаталог - Строка - корень проекта; opm на время сборки делает его текущим каталогом
//   АрхивПакета - ЗаписьZIPФайла - content.zip пакета с уже добавленными включаемыми файлами
//
Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт

	Поставка = ЗагрузитьСценарий(ОбъединитьПути(РабочийКаталог, "tools", "ПоставкаЗависимостей.os"));

	// Путь — от текущего каталога, как у .ВключитьФайл: им opm на время сборки делает РабочийКаталог,
	// и от него же архив считает пути записей.
	Для Каждого Файл Из Поставка.Файлы("oscript_modules", РантаймЗависимости()) Цикл
		АрхивПакета.Добавить(Файл, РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
	КонецЦикла;

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

Функция РантаймЗависимости()

	Результат = Новый Массив();
	Для Каждого Зависимость Из Описание.Зависимости() Цикл
		Если НЕ Зависимость.ДляРазработки Тогда
			Результат.Добавить(Зависимость.ИмяПакета);
		КонецЕсли;
	КонецЦикла;

	Возврат Результат;

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

Описание.Имя("openhub")
	.Версия("0.20.6")
	.Автор("e.ivanov")
	.АдресРепозитория("https://github.com/Segate-ekb/openhub")
	.Описание("Открытый хаб пакетов OneScript: реестр для opm с каталогом, правами, кэширующим прокси и публикацией из CI")
	.ВерсияСреды("2.2.1")

	.ЗависитОт("semver", "1.1.1")
	.ЗависитОт("autumn", "5.0.2")
	.ЗависитОт("configor", "0.12.1")
	.ЗависитОт("autumn-logos", "1.4.0")
	.ЗависитОт("autumn-data", "2.1.0")
	.ЗависитОт("entity", "5.4.0.1")
	.ЗависитОт("winow", "0.14.1")
	.ЗависитОт("1connector", "2.3.3")
	.ЗависитОт("compressor", "1.1.0")
	.ЗависитОт("oint", "2.4.0.1")
	.ЗависитОт("fzy", "1.0.3")
	.ЗависитОт("opentelemetry", "1.1.0")
	.ЗависитОт("autumn-opentelemetry", "1.1.1")
	.ЗависитОт("InternetMail", "1.0.10")
	.ЗависитОт("ospx-tools", "0.2.0")
	.ЗависитОт("pwhash", "0.3.0")
	.ЗависитОт("os-scheduler", "0.1.0")
	.ЗависитОт("oidc-client", "0.7.0")
	.ЗависитОт("jwt-verify", "0.2.0")
	.ЗависитОт("oscript-md", "0.4.0")
	.ЗависитОт("oscript-ui", "0.8.0")
	.ЗависитОт("packageinfo", "1.1.1")
	.ЗависитОт("ip", "0.2.0")
	.ЗависитОт("errors", "0.2.0")
	.ЗависитОт("url", "0.2.0")
	.ЗависитОт("autumn-cache", "0.3.1")

	.РазработкаЗависитОт("asserts", "1.6.2")
	.РазработкаЗависитОт("tempfiles", "1.1.1")
	.РазработкаЗависитОт("html-sanitizer", "0.2.0")

	.ВключитьФайл("src")
	// Версию приложение читает отсюда (ОписаниеПриложения), поэтому манифест едет в пакете.
	.ВключитьФайл("packagedef")
	.ВключитьФайл("README.md")
	.ВключитьФайл("autumn-properties.json")

	// Команда `openhub` в PATH после `opm install openhub`.
	.ИсполняемыйФайл("src/main.os")
