Skip to content

Commit 522353c

Browse files
authored
Merge pull request #20 from sfaqer/feature/autumn-ovm
ОСенний OVM
2 parents 9a73cef + 0eaef6d commit 522353c

22 files changed

+873
-907
lines changed

packagedef

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
.ВерсияСреды("1.0.20")
77
.ЗависитОт("json")
88
.ЗависитОт("1commands", "1.3.2")
9-
.ЗависитОт("fluent", "0.3.1")
9+
.ЗависитОт("fluent", "0.6.1")
1010
.ЗависитОт("fs")
11-
.ЗависитОт("logos")
1211
.ЗависитОт("tempfiles")
13-
.ЗависитОт("cli", "0.9.8")
1412
.ЗависитОт("strings")
13+
.ЗависитОт("decorator", "1.5.2")
14+
.ЗависитОт("autumn", "3.2.0")
15+
.ЗависитОт("autumn-logos", "1.1.1")
16+
.ЗависитОт("autumn-cli", "1.0.3")
1517
.ИсполняемыйФайл("src/cmd/ovm.os", "ovm")
1618
;

src/cmd/ovm.os

Lines changed: 63 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,67 @@
1-
#Использовать cli
2-
#Использовать tempfiles
1+
#Использовать autumn
2+
#Использовать autumn-logos
3+
#Использовать autumn-cli
34

45
#Использовать "."
56
#Использовать "../core"
67

7-
///////////////////////////////////////////////////////////////////////////////
8-
9-
// Обработчик выполнения команды
10-
//
11-
// Параметры:
12-
// КомандаПриложения - КомандаПриложения - Выполняемая команда
13-
//
14-
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
15-
16-
КомандаПриложения.ВывестиСправку();
17-
18-
КонецПроцедуры
19-
20-
Процедура ВыполнитьПриложение()
21-
22-
КонсольноеПриложение = Новый КонсольноеПриложение(
23-
ПараметрыПриложения.ИмяПриложения(),
24-
"OneScript Version Manager v" + ПараметрыПриложения.Версия()
25-
);
26-
27-
КонсольноеПриложение.Версия("v version", ПараметрыПриложения.Версия());
28-
29-
КонсольноеПриложение.ДобавитьКоманду(
30-
"install i",
31-
"Установить OneScript указанных версий",
32-
Новый КомандаInstall()
33-
);
34-
КонсольноеПриложение.ДобавитьКоманду(
35-
"use u",
36-
"Использовать OneScript указанной версии",
37-
Новый КомандаUse()
38-
);
39-
КонсольноеПриложение.ДобавитьКоманду(
40-
"uninstall delete d",
41-
"Удалить OneScript указанных версий",
42-
Новый КомандаUninstall()
43-
);
44-
КонсольноеПриложение.ДобавитьКоманду(
45-
"list ls",
46-
"Вывести список установленных и/или доступных версий OneScript",
47-
Новый КомандаList()
48-
);
49-
КонсольноеПриложение.ДобавитьКоманду(
50-
"run r",
51-
"Запустить исполняемый файл в окружении указанной версии OneScript",
52-
Новый КомандаRun()
53-
);
54-
КонсольноеПриложение.ДобавитьКоманду(
55-
"which w",
56-
"Вывести путь к установленной версии OneScript",
57-
Новый КомандаWhich()
58-
);
59-
КонсольноеПриложение.ДобавитьКоманду(
60-
"config",
61-
"Настройки ovm. Прокси, сервера и т.п.",
62-
Новый КомандаConfig()
63-
);
64-
65-
КонсольноеПриложение.УстановитьОсновноеДействие(ЭтотОбъект);
66-
КонсольноеПриложение.Запустить(АргументыКоманднойСтроки);
67-
68-
КонецПроцедуры
69-
70-
Лог = ПараметрыOVM.ПолучитьЛог();
71-
КодСостояния = 0;
72-
Попытка
73-
ВыполнитьПриложение();
74-
Исключение
75-
Лог.Ошибка(ОписаниеОшибки());
76-
КодСостояния = 1;
77-
КонецПопытки;
78-
79-
ВременныеФайлы.Удалить();
80-
81-
ЗавершитьРаботу(КодСостояния);
8+
Функция НастройкиЛогоса()
9+
10+
НастройкиЛога = Новый Соответствие;
11+
НастройкиЛога.Вставить("level", "INFO");
12+
НастройкиЛога.Вставить("appenders", "logos");
13+
НастройкиЛога.Вставить("classlayout", "РаскладкаЛогOVM");
14+
15+
НастройкиУровнейЛогов = Новый Соответствие;
16+
НастройкиУровнейЛогов.Вставить("oscript.app.ovm", НастройкиЛога);
17+
18+
НастройкаАппендера = Новый Соответствие;
19+
НастройкаАппендера.Вставить("type", "АппендерЛогOVM");
20+
НастройкаАппендера.Вставить("level", "INFO");
21+
22+
НастройкиАппендеров = Новый Соответствие;
23+
24+
НастройкиАппендеров.Вставить("logos", НастройкаАппендера);
25+
26+
Результат = Новый Соответствие;
27+
28+
Результат.Вставить("logos.logger", НастройкиУровнейЛогов);
29+
Результат.Вставить("logos.appender", НастройкиАппендеров);
30+
31+
Возврат Результат;
32+
33+
КонецФункции
34+
35+
СоветДругогоМастера = Новый СоветДругогоМастера;
36+
СоветДругогоМастера.ЗначенияДеталек(НастройкиЛогоса());
37+
38+
Поделка = Новый Поделка(СоветДругогоМастера);
39+
40+
УпакованВИсполняемыйФайл = СтрНайти(ТекущийСценарий().Источник, "oscript://") <> 0;
41+
42+
Если УпакованВИсполняемыйФайл Тогда
43+
Поделка
44+
.ДобавитьЗаготовку(Тип("ИнициализацияИнтефейсаКоманднойСтроки"))
45+
.ДобавитьЗаготовку(Тип("ИнициализацияФабрикиЛогов"));
46+
КонецЕсли;
47+
48+
Поделка
49+
.ДобавитьАннотацию(Тип("АннотацияЛогOVM"))
50+
.ДобавитьЖелудь(Тип("ФайлНастроек"))
51+
.ДобавитьЖелудь(Тип("УстановщикOneScript"))
52+
.ДобавитьЖелудь(Тип("РаскладкаЛогOVM"))
53+
.ДобавитьЖелудь(Тип("ПараметрыOVM"))
54+
.ДобавитьЖелудь(Тип("ПараметрыПриложения"))
55+
.ДобавитьЖелудь(Тип("ДеинсталляторOneScript"))
56+
.ДобавитьЖелудь(Тип("ВерсииOneScript"))
57+
.ДобавитьЖелудь(Тип("АппендерЛогOVM"))
58+
.ДобавитьЖелудь(Тип("АктиваторOneScript"))
59+
.ДобавитьЖелудь(Тип("КомандаConfig"))
60+
.ДобавитьЖелудь(Тип("КомандаInstall"))
61+
.ДобавитьЖелудь(Тип("КомандаList"))
62+
.ДобавитьЖелудь(Тип("КомандаRun"))
63+
.ДобавитьЖелудь(Тип("КомандаUninstall"))
64+
.ДобавитьЖелудь(Тип("КомандаUse"))
65+
.ДобавитьЖелудь(Тип("КомандаWhich"));
66+
67+
Поделка.ЗапуститьПриложение();
Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,22 @@
11
#Использовать "../../core"
22

3-
Процедура ОписаниеКоманды(КомандаПриложения) Экспорт
4-
5-
КомандаПриложения.Аргумент(
6-
"NAME",
7-
,
8-
"Название опции")
9-
.ТСтрока();
3+
&Аргумент(Имя = "NAME", Описание = "Название опции")
4+
&ТСтрока
5+
Перем Имя;
106

11-
КомандаПриложения.Аргумент(
12-
"VALUE",
13-
,
14-
"Значение опции (массив строк)")
15-
.ТСтрока();
16-
17-
КонецПроцедуры
7+
&Аргумент(Имя = "VALUE", Описание = "Значение опции (массив строк)")
8+
&ТСтрока
9+
Перем Значение;
1810

19-
// Обработчик выполнения команды
20-
//
21-
// Параметры:
22-
// КомандаПриложения - КомандаПриложения - Выполняемая команда
23-
//
24-
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
25-
Имя = КомандаПриложения.ЗначениеАргумента("NAME");
26-
Значение = КомандаПриложения.ЗначениеАргумента("VALUE");
11+
&Пластилин
12+
Перем ФайлНастроек;
2713

28-
Хранилище = ПараметрыOVM.ХранилищеНастроек();
29-
Хранилище.Установить(Имя, Значение);
30-
Хранилище.Записать();
14+
&КомандаПриложения(Имя = "config", Описание = "Настройки ovm. Прокси, сервера и т.п.")
15+
Процедура ПриСозданииОбъекта()
16+
КонецПроцедуры
3117

32-
КонецПроцедуры
18+
&ВыполнениеКоманды
19+
Процедура ВыполнениеКоманды() Экспорт
20+
ФайлНастроек.Установить(Имя, Значение);
21+
ФайлНастроек.Записать();
22+
КонецПроцедуры

src/cmd/Классы/КомандаInstall.os

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
#Использовать "../../core"
22

3+
&ЛогOVM
34
Перем Лог;
45

6+
&Пластилин
7+
Перем УстановщикOneScript;
8+
9+
&Пластилин
10+
Перем ПараметрыOVM;
11+
12+
&КомандаПриложения(Имя = "install i", Описание = "Установить OneScript указанных версий")
13+
Процедура ПриСозданииОбъекта()
14+
КонецПроцедуры
15+
516
// Заполняет описание команды для библиотеки cli
617
//
718
// Параметры:
@@ -38,11 +49,11 @@
3849
// КомандаПриложения - КомандаПриложения - Выполняемая команда
3950
//
4051
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
41-
52+
4253
МассивВерсийКУстановке = КомандаПриложения.ЗначениеАргумента("VERSION");
4354
АлиасВерсии = КомандаПриложения.ЗначениеОпции("name");
4455
ОчищатьКаталогУстановки = КомандаПриложения.ЗначениеОпции("clean");
45-
56+
4657
Если ЗначениеЗаполнено(АлиасВерсии) И МассивВерсийКУстановке.Количество() > 1 Тогда
4758
ВызватьИсключение "Опция <--name> может быть задана только при установке одной версии OneScript";
4859
КонецЕсли;
@@ -52,13 +63,11 @@
5263
Иначе
5364
ИспользоватьХ64 = Ложь;
5465
КонецЕсли;
55-
56-
УстановщикOneScript = Новый УстановщикOneScript();
57-
66+
5867
Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл
5968
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ОчищатьКаталогУстановки, ИспользоватьХ64);
6069
КонецЦикла;
61-
70+
6271
Если МассивВерсийКУстановке.Количество() > 0 Тогда
6372
Лог.Информация(
6473
"Для начала использования версии OneScript, выполните команду:
@@ -68,5 +77,3 @@
6877
КонецЕсли;
6978

7079
КонецПроцедуры
71-
72-
Лог = ПараметрыOVM.ПолучитьЛог();

src/cmd/Классы/КомандаList.os

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
11
#Использовать "../../core"
22

3+
&ЛогOVM
34
Перем Лог;
45

5-
// Заполняет описание команды для библиотеки cli
6-
//
7-
// Параметры:
8-
// КомандаПриложения - КомандаПриложения - Настраиваемая команда
9-
//
10-
Процедура ОписаниеКоманды(КомандаПриложения) Экспорт
11-
12-
КомандаПриложения
13-
.Опция("remote r", Ложь, "Вывести список доступных к установке версий")
14-
.ВОкружении("OVM_LIST_REMOTE");
15-
16-
КомандаПриложения
17-
.Опция("quiet q", Ложь, "Тихий режим, вывод только алиасов версий")
18-
.ВОкружении("OVM_LIST_QUIET");
19-
20-
КомандаПриложения
21-
.Опция("all a", Ложь, "Вывести список всех версий: установленных и доступных на сайте")
22-
.ВОкружении("OVM_LIST_ALL");
6+
&Пластилин("АппендерЛогOVM")
7+
Перем Аппендер;
8+
9+
&Пластилин
10+
Перем ВерсииOneScript;
11+
12+
&Опция(Имя = "remote r", Описание = "Вывести список доступных к установке версий")
13+
&ВОкружении("OVM_LIST_REMOTE")
14+
&ТБулево
15+
&ПоУмолчанию(Ложь)
16+
Перем ВыводитьСписокВерсийНаСайте;
17+
18+
&Опция(Имя = "all a", Описание = "Вывести список всех версий: установленных и доступных на сайте")
19+
&ВОкружении("OVM_LIST_ALL")
20+
&ТБулево
21+
&ПоУмолчанию(Ложь)
22+
Перем ВыводитьВсеВерсии;
23+
24+
&Опция(Имя = "quiet q", Описание = "Тихий режим, вывод только алиасов версий")
25+
&ВОкружении("OVM_LIST_QUIET")
26+
&ТБулево
27+
&ПоУмолчанию(Ложь)
28+
Перем ТихийРежим;
2329

30+
&КомандаПриложения(Имя = "list ls", Описание = "Вывести список установленных и/или доступных версий OneScript")
31+
Процедура ПриСозданииОбъекта()
2432
КонецПроцедуры
2533

26-
// Обработчик выполнения команды
27-
//
28-
// Параметры:
29-
// КомандаПриложения - КомандаПриложения - Выполняемая команда
30-
//
31-
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
32-
33-
ВыводитьСписокВерсийНаСайте = КомандаПриложения.ЗначениеОпции("remote");
34-
ВыводитьВсеВерсии = КомандаПриложения.ЗначениеОпции("all");
35-
ТихийРежим = КомандаПриложения.ЗначениеОпции("quiet");
36-
34+
&ВыполнениеКоманды
35+
Процедура ВыполнениеКоманды() Экспорт
36+
3737
Если ВыводитьВсеВерсии Тогда
38-
ВывестиВсеВерсии(ТихийРежим);
38+
ВывестиВсеВерсии();
3939
ИначеЕсли ВыводитьСписокВерсийНаСайте Тогда
40-
ВывестиСписокДоступныхКУстановкеВерсий(ТихийРежим);
40+
ВывестиСписокДоступныхКУстановкеВерсий();
4141
Иначе
42-
ВывестиСписокУстановленныхВерсий(ТихийРежим);
42+
ВывестиСписокУстановленныхВерсий();
4343
КонецЕсли;
4444

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

47-
Процедура ВывестиВсеВерсии(Знач ТихийРежим)
47+
Процедура ВывестиВсеВерсии()
4848

4949
ВсеВерсии = ВерсииOneScript.ПолучитьСписокВсехВерсий();
5050

@@ -71,15 +71,15 @@
7171
СтатусСообщения.Информация,
7272
СтатусСообщения.БезСтатуса
7373
);
74-
Аппендер = ПараметрыOVM.ПолучитьОсновнойСпособВывода();
74+
7575
Аппендер.УстановитьСвойство("message-status", УстанавливаемыйСтатусСообщения);
7676
Лог.Информация(Сообщение);
7777

7878
КонецЦикла;
7979

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

82-
Процедура ВывестиСписокУстановленныхВерсий(Знач ТихийРежим)
82+
Процедура ВывестиСписокУстановленныхВерсий()
8383
СписокУстановленныхВерсий = ВерсииOneScript.ПолучитьСписокУстановленныхВерсий();
8484
Для Каждого УстановленнаяВерсия Из СписокУстановленныхВерсий Цикл
8585

@@ -103,14 +103,14 @@
103103
СтатусСообщения.Информация,
104104
СтатусСообщения.БезСтатуса
105105
);
106-
Аппендер = ПараметрыOVM.ПолучитьОсновнойСпособВывода();
106+
107107
Аппендер.УстановитьСвойство("message-status", УстанавливаемыйСтатусСообщения);
108108
Лог.Информация(Сообщение);
109109

110110
КонецЦикла;
111111
КонецПроцедуры
112112

113-
Процедура ВывестиСписокДоступныхКУстановкеВерсий(Знач ТихийРежим)
113+
Процедура ВывестиСписокДоступныхКУстановкеВерсий()
114114

115115
СписокДоступныВерсий = ВерсииOneScript.ПолучитьСписокДоступныхКУстановкеВерсий();
116116
Для Каждого ДоступнаяВерсия Из СписокДоступныВерсий Цикл
@@ -123,5 +123,3 @@
123123
КонецЦикла;
124124

125125
КонецПроцедуры
126-
127-
Лог = ПараметрыOVM.ПолучитьЛог();

0 commit comments

Comments
 (0)