﻿#Использовать 1commands

////////////////////////////////////////////////////////////
// Описание пакета для сборки и установки
// Полную документацию см. на hub.oscript.io/packaging
//


#Область СборкаПакета

// Вызывается пакетным менеджером перед началом сборки пакета.
//
// Параметры:
//   РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
//
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт

	ВыполнитьКоманду(РабочийКаталог, "opm install --local", "Установка зависимостей");
	// Тесты и доки внутри библиотек весят очень много. А нам они не нужны
	УдалитьСлужебныеКаталогиБиблиотек(ОбъединитьПути(РабочийКаталог, "oscript_modules"));
	ВыполнитьКоманду(РабочийКаталог, "oscript src/main.os epf compile -R epf", "Сборка epf");

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

Процедура УдалитьСлужебныеКаталогиБиблиотек(Знач КаталогМодулей)

	ИменаКаталогов = СтрРазделить("tests,test,spec,docs,doc,examples,example,features,.github,.vscode", ",");

	Удалено = 0;
	Для Каждого Библиотека Из НайтиФайлы(КаталогМодулей, "*") Цикл
		Если Не Библиотека.ЭтоКаталог() Тогда
			Продолжить;
		КонецЕсли;
		Для Каждого Имя Из ИменаКаталогов Цикл
			Каталог = Новый Файл(ОбъединитьПути(Библиотека.ПолноеИмя, Имя));
			Если Каталог.Существует() И Каталог.ЭтоКаталог() Тогда
				УдалитьФайлы(Каталог.ПолноеИмя);
				Удалено = Удалено + 1;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;

	Сообщить(СтрШаблон("Из библиотек удалено служебных каталогов (тесты, документация, примеры): %1", Удалено));

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

Процедура ВыполнитьКоманду(Знач РабочийКаталог, Знач СтрокаЗапуска, Знач Наименование)

	Команда = Новый Команда;
	Команда.УстановитьПравильныйКодВозврата(0);
	Команда.ПоказыватьВыводНемедленно(Истина);
	Команда.УстановитьРабочийКаталог(РабочийКаталог);
	Команда.УстановитьСтрокуЗапуска(СтрокаЗапуска);
	КодВозврата = Команда.Исполнить();
	Если КодВозврата <> 0 Тогда
		ВызватьИсключение СтрШаблон("%1 завершилась с кодом %2", Наименование, КодВозврата);
	КонецЕсли;

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

#КонецОбласти



Описание.Имя("vanessa-runner")
		.Версия("3.0.1")
		.ВерсияСреды("2.0.0")
		.АдресРепозитория("https://github.com/vanessa-opensource/vanessa-runner")

		.ЗависитОт("autumn", "5.0.0")
		.ЗависитОт("autumn-cli", "1.3.0")
		.ЗависитОт("autumn-logos", "1.3.3")
		.ЗависитОт("v8runner", "1.13.1")
		.ЗависитОт("ibcmdrunner", "0.4.0")
		.ЗависитОт("v8find", "0.3.2")
		.ЗависитОт("edtfind", "1.0.2")
		.ЗависитОт("tempfiles", "1.1.1")
		.ЗависитОт("fs", "1.2.0")
		.ЗависитОт("irac", "1.4.0")
		.ЗависитОт("1commands", "1.5.0")
		.ЗависитОт("v8storage")
		.ЗависитОт("change-indexer", "0.1.0")
		.ЗависитОт("autumn-mcp", "1.1.2")
		.ЗависитОт("autumn-mcpify", "0.3.0")
		.ЗависитОт("decorator", "3.0.0")
		.ЗависитОт("coverage", "0.7.0")
		.ЗависитОт("coveragebsl", "0.5.0")
		.ЗависитОт("packageinfo", "1.1.1")

		.РазработкаЗависитОт("oneunit", "0.5.0")
		.РазработкаЗависитОт("asserts", "1.6.2")
		// moskito после oneunit: opm ставит последнюю запрошенную версию decorator,
		// а oneunit тянет decorator 2.x, с которым moskito 1.0.0 не работает
		.РазработкаЗависитОт("moskito", "1.0.0")
		.РазработкаЗависитОт("mutatos", "1.0.0")
		

		.ВключитьФайл("tools")
		.ВключитьФайл("src")
		.ВключитьФайл("epf")
		.ВключитьФайл("oscript_modules")
		.ВключитьФайл("packagedef")

		.ВключитьФайл("README.md")
		.ВключитьФайл("LICENSE")


		.ИсполняемыйФайл("src/main.os", "vrunner")
		.ИсполняемыйФайл("src/main.os", "vanessa-runner")
		.ИсполняемыйФайл("src/mcp.os", "vrunner-mcp")
