Skip to content

Commit e2d4ce7

Browse files
committed
Merge branch 'release/v0.6.0'
2 parents 5d404aa + af4b920 commit e2d4ce7

8 files changed

+107
-13
lines changed

.vscode/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// Поместите параметры в этот файл, чтобы перезаписать параметры по умолчанию и пользовательские параметры.
2+
{
3+
"language-1c-bsl.linterEntryPoint": "src/opm.os"
4+
}

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# opm
2+
3+
[![GitHub release](https://img.shields.io/github/release/oscript-library/opm.svg)](https://github.com/oscript-library/opm/releases)

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("opm")
3-
.Версия("0.5.1")
3+
.Версия("0.6.0")
44
.ЗависитОт("logos")
55
.ЗависитОт("cmdline")
66
.ЗависитОт("tempfiles")

src/Классы/ДиспетчерКомандПриложения.os

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
Процедура ДобавитьОписанияКоманд(Знач Парсер) Экспорт
88
ДобавитьКомандуBuild(Парсер);
9+
ДобавитьКомандуRun(Парсер);
10+
ДобавитьКомандуTest(Парсер);
911
ДобавитьКомандуPrepare(Парсер);
1012
ДобавитьКомандуInstall(Парсер);
1113
ДобавитьКомандуUpdate(Парсер);
@@ -31,6 +33,19 @@
3133
Парсер.ДобавитьКоманду(Команда);
3234
КонецПроцедуры
3335

36+
Процедура ДобавитьКомандуRun(Знач Парсер)
37+
Команда = Парсер.ОписаниеКоманды("run", "Выполнить произвольную задачу");
38+
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяЗадачи", "Имя выполняемой задачи.");
39+
Парсер.ДобавитьПараметрКоллекцияКоманды(Команда, "ПараметрыЗадачи", "Коллекция параметров, передаваемых задаче");
40+
Парсер.ДобавитьКоманду(Команда);
41+
КонецПроцедуры
42+
43+
Процедура ДобавитьКомандуTest(Знач Парсер)
44+
Команда = Парсер.ОписаниеКоманды("test", "Выполнить тестирование проекта");
45+
Парсер.ДобавитьПараметрКоллекцияКоманды(Команда, "ПараметрыЗадачи", "Коллекция параметров, передаваемых задаче тестирования");
46+
Парсер.ДобавитьКоманду(Команда);
47+
КонецПроцедуры
48+
3449
Процедура ДобавитьКомандуInstall(Знач Парсер)
3550
Команда = Парсер.ОписаниеКоманды("install", "Выполнить установку. Если указано имя пакета, происходит установка из хаба или из файла. В обратном случае устанавливаются зависимости текущего пакета по файлу packagedef.");
3651
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-f", "Указать файл из которого нужно установить пакет");
@@ -75,6 +90,10 @@
7590
ЗначенияПараметров = ПараметрыКоманды.ЗначенияПараметров;
7691
Если ПараметрыКоманды.Команда = "build" Тогда
7792
ВыполнитьСборку(ЗначенияПараметров["КаталогИсходников"], ЗначенияПараметров["-mf"], ЗначенияПараметров["-out"]);
93+
ИначеЕсли ПараметрыКоманды.Команда = "run" Тогда
94+
ВыполнитьЗадачу(ЗначенияПараметров["ИмяЗадачи"], ЗначенияПараметров["ПараметрыЗадачи"]);
95+
ИначеЕсли ПараметрыКоманды.Команда = "test" Тогда
96+
ВыполнитьЗадачу("test", ЗначенияПараметров["ПараметрыЗадачи"]);
7897
ИначеЕсли ПараметрыКоманды.Команда = "prepare" Тогда
7998
ПодготовитьКаталогПроекта(ЗначенияПараметров["КаталогСборкиПакета"]);
8099
ИначеЕсли ПараметрыКоманды.Команда = "install" Тогда
@@ -121,6 +140,13 @@
121140

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

143+
Процедура ВыполнитьЗадачу(Знач ИмяЗадачи, Знач ПараметрыЗадачи)
144+
145+
ИсполнительЗадач = Новый ИсполнительЗадач();
146+
ИсполнительЗадач.ВыполнитьЗадачу(ИмяЗадачи, ПараметрыЗадачи);
147+
148+
КонецПроцедуры
149+
124150
Процедура ОбновитьПакет(Знач ЗначенияПараметров) Экспорт
125151

126152
Установщик = Новый УстановкаПакета;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#Использовать logos
2+
3+
Перем Лог;
4+
5+
Процедура ВыполнитьЗадачу(Знач ИмяЗадачи, Знач ПараметрыЗадачи) Экспорт
6+
7+
Если ПараметрыЗадачи = Неопределено Тогда
8+
ПараметрыЗадачи = Новый Массив;
9+
КонецЕсли;
10+
11+
ПутьККаталогуЗадач = "";
12+
13+
ОписаниеПакета = РаботаСОписаниемПакета.ПрочитатьОписаниеПакета();
14+
Свойства = ОписаниеПакета.Свойства();
15+
Если Свойства.Свойство("Задачи") Тогда
16+
ПутьККаталогуЗадач = Свойства.Задачи;
17+
КонецЕсли;
18+
19+
Если НЕ ЗначениеЗаполнено(ПутьККаталогуЗадач) Тогда
20+
ПутьККаталогуЗадач = ОбъединитьПути(ТекущийКаталог(), "tasks");
21+
КонецЕсли;
22+
23+
КаталогЗадач = Новый Файл(ПутьККаталогуЗадач);
24+
Если НЕ КаталогЗадач.Существует() Тогда
25+
ТекстСообщения = СтрШаблон("Не найден каталог задач: %1", КаталогЗадач.ПолноеИмя);
26+
Лог.Ошибка(ТекстСообщения);
27+
Возврат;
28+
КонецЕсли;
29+
30+
ПутьКЗадаче = ОбъединитьПути(ПутьККаталогуЗадач, ИмяЗадачи + ".os");
31+
32+
ФайлЗадачи = Новый Файл(ПутьКЗадаче);
33+
Если НЕ ФайлЗадачи.Существует() Тогда
34+
ТекстСообщения = СтрШаблон("Файл задачи не существует: %1", ФайлЗадачи.ПолноеИмя);
35+
Лог.Ошибка(ТекстСообщения);
36+
Возврат;
37+
КонецЕсли;
38+
39+
ПараметрыСценария = Новый Структура("АргументыКоманднойСтроки", ПараметрыЗадачи);
40+
ЗагрузитьСценарий(ПутьКЗадаче, ПараметрыСценария);
41+
42+
КонецПроцедуры
43+
44+
Процедура Инициализация()
45+
46+
Лог = Логирование.ПолучитьЛог("oscript.app.opm");
47+
48+
КонецПроцедуры
49+
50+
Инициализация();

src/Классы/ОписаниеПакета.os

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@
5050
Возврат ЭтотОбъект;
5151
КонецФункции
5252

53+
Функция Задачи(Знач Параметр) Экспорт
54+
УстановитьСвойствоПакета("Задачи", Параметр);
55+
Возврат ЭтотОбъект;
56+
КонецФункции
57+
5358
Функция Свойства() Экспорт
5459

5560
// Проверка обязательных свойств

src/Классы/УстановкаПакета.os

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,11 @@
8989

9090
Процедура УстановитьПакетыПоОписаниюПакета() Экспорт
9191

92-
ПутьКМанифесту = ОбъединитьПути(ТекущийКаталог(), Константы.ИмяФайлаСпецификацииПакета);
92+
ОписаниеПакета = РаботаСОписаниемПакета.ПрочитатьОписаниеПакета();
9393

94-
Файл_Манифест = Новый Файл(ПутьКМанифесту);
95-
Если НЕ Файл_Манифест.Существует() Тогда
96-
ВызватьИсключение "В текущем каталоге не обнаружен файл " + Константы.ИмяФайлаСпецификацииПакета;
97-
КонецЕсли;
98-
99-
Описание = Новый ОписаниеПакета();
100-
Контекст = Новый Структура("Описание", Описание);
101-
ЗагрузитьСценарий(ПутьКМанифесту, Контекст);
102-
103-
ПроверитьВерсиюСреды(Описание);
94+
ПроверитьВерсиюСреды(ОписаниеПакета);
10495

105-
РазрешитьЗависимостиПакета(Описание);
96+
РазрешитьЗависимостиПакета(ОписаниеПакета);
10697

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Функция ПрочитатьОписаниеПакета() Экспорт
2+
3+
Описание = Новый ОписаниеПакета();
4+
5+
ПутьКМанифесту = ОбъединитьПути(ТекущийКаталог(), Константы.ИмяФайлаСпецификацииПакета);
6+
7+
Файл_Манифест = Новый Файл(ПутьКМанифесту);
8+
Если Файл_Манифест.Существует() Тогда
9+
Контекст = Новый Структура("Описание", Описание);
10+
ЗагрузитьСценарий(ПутьКМанифесту, Контекст);
11+
КонецЕсли;
12+
13+
Возврат Описание;
14+
15+
КонецФункции

0 commit comments

Comments
 (0)