-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ОСенний OVM #20
ОСенний OVM #20
Changes from all commits
407d745
75aefa6
18e123b
de9ab4b
2a92341
248b255
0eaef6d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,81 +1,67 @@ | ||
#Использовать cli | ||
#Использовать tempfiles | ||
#Использовать autumn | ||
#Использовать autumn-logos | ||
#Использовать autumn-cli | ||
|
||
#Использовать "." | ||
#Использовать "../core" | ||
|
||
/////////////////////////////////////////////////////////////////////////////// | ||
|
||
// Обработчик выполнения команды | ||
// | ||
// Параметры: | ||
// КомандаПриложения - КомандаПриложения - Выполняемая команда | ||
// | ||
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт | ||
|
||
КомандаПриложения.ВывестиСправку(); | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ВыполнитьПриложение() | ||
|
||
КонсольноеПриложение = Новый КонсольноеПриложение( | ||
ПараметрыПриложения.ИмяПриложения(), | ||
"OneScript Version Manager v" + ПараметрыПриложения.Версия() | ||
); | ||
|
||
КонсольноеПриложение.Версия("v version", ПараметрыПриложения.Версия()); | ||
|
||
КонсольноеПриложение.ДобавитьКоманду( | ||
"install i", | ||
"Установить OneScript указанных версий", | ||
Новый КомандаInstall() | ||
); | ||
КонсольноеПриложение.ДобавитьКоманду( | ||
"use u", | ||
"Использовать OneScript указанной версии", | ||
Новый КомандаUse() | ||
); | ||
КонсольноеПриложение.ДобавитьКоманду( | ||
"uninstall delete d", | ||
"Удалить OneScript указанных версий", | ||
Новый КомандаUninstall() | ||
); | ||
КонсольноеПриложение.ДобавитьКоманду( | ||
"list ls", | ||
"Вывести список установленных и/или доступных версий OneScript", | ||
Новый КомандаList() | ||
); | ||
КонсольноеПриложение.ДобавитьКоманду( | ||
"run r", | ||
"Запустить исполняемый файл в окружении указанной версии OneScript", | ||
Новый КомандаRun() | ||
); | ||
КонсольноеПриложение.ДобавитьКоманду( | ||
"which w", | ||
"Вывести путь к установленной версии OneScript", | ||
Новый КомандаWhich() | ||
); | ||
КонсольноеПриложение.ДобавитьКоманду( | ||
"config", | ||
"Настройки ovm. Прокси, сервера и т.п.", | ||
Новый КомандаConfig() | ||
); | ||
|
||
КонсольноеПриложение.УстановитьОсновноеДействие(ЭтотОбъект); | ||
КонсольноеПриложение.Запустить(АргументыКоманднойСтроки); | ||
|
||
КонецПроцедуры | ||
|
||
Лог = ПараметрыOVM.ПолучитьЛог(); | ||
КодСостояния = 0; | ||
Попытка | ||
ВыполнитьПриложение(); | ||
Исключение | ||
Лог.Ошибка(ОписаниеОшибки()); | ||
КодСостояния = 1; | ||
КонецПопытки; | ||
|
||
ВременныеФайлы.Удалить(); | ||
|
||
ЗавершитьРаботу(КодСостояния); | ||
Функция НастройкиЛогоса() | ||
|
||
НастройкиЛога = Новый Соответствие; | ||
НастройкиЛога.Вставить("level", "INFO"); | ||
НастройкиЛога.Вставить("appenders", "logos"); | ||
НастройкиЛога.Вставить("classlayout", "РаскладкаЛогOVM"); | ||
|
||
НастройкиУровнейЛогов = Новый Соответствие; | ||
НастройкиУровнейЛогов.Вставить("oscript.app.ovm", НастройкиЛога); | ||
|
||
НастройкаАппендера = Новый Соответствие; | ||
НастройкаАппендера.Вставить("type", "АппендерЛогOVM"); | ||
НастройкаАппендера.Вставить("level", "INFO"); | ||
|
||
НастройкиАппендеров = Новый Соответствие; | ||
|
||
НастройкиАппендеров.Вставить("logos", НастройкаАппендера); | ||
|
||
Результат = Новый Соответствие; | ||
|
||
Результат.Вставить("logos.logger", НастройкиУровнейЛогов); | ||
Результат.Вставить("logos.appender", НастройкиАппендеров); | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
СоветДругогоМастера = Новый СоветДругогоМастера; | ||
СоветДругогоМастера.ЗначенияДеталек(НастройкиЛогоса()); | ||
|
||
Поделка = Новый Поделка(СоветДругогоМастера); | ||
|
||
УпакованВИсполняемыйФайл = СтрНайти(ТекущийСценарий().Источник, "oscript://") <> 0; | ||
|
||
Если УпакованВИсполняемыйФайл Тогда | ||
Поделка | ||
.ДобавитьЗаготовку(Тип("ИнициализацияИнтефейсаКоманднойСтроки")) | ||
.ДобавитьЗаготовку(Тип("ИнициализацияФабрикиЛогов")); | ||
КонецЕсли; | ||
|
||
Поделка | ||
.ДобавитьАннотацию(Тип("АннотацияЛогOVM")) | ||
.ДобавитьЖелудь(Тип("ФайлНастроек")) | ||
.ДобавитьЖелудь(Тип("УстановщикOneScript")) | ||
.ДобавитьЖелудь(Тип("РаскладкаЛогOVM")) | ||
.ДобавитьЖелудь(Тип("ПараметрыOVM")) | ||
.ДобавитьЖелудь(Тип("ПараметрыПриложения")) | ||
.ДобавитьЖелудь(Тип("ДеинсталляторOneScript")) | ||
.ДобавитьЖелудь(Тип("ВерсииOneScript")) | ||
.ДобавитьЖелудь(Тип("АппендерЛогOVM")) | ||
.ДобавитьЖелудь(Тип("АктиваторOneScript")) | ||
.ДобавитьЖелудь(Тип("КомандаConfig")) | ||
.ДобавитьЖелудь(Тип("КомандаInstall")) | ||
.ДобавитьЖелудь(Тип("КомандаList")) | ||
.ДобавитьЖелудь(Тип("КомандаRun")) | ||
.ДобавитьЖелудь(Тип("КомандаUninstall")) | ||
.ДобавитьЖелудь(Тип("КомандаUse")) | ||
.ДобавитьЖелудь(Тип("КомандаWhich")); | ||
|
||
Поделка.ЗапуститьПриложение(); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,22 @@ | ||
#Использовать "../../core" | ||
|
||
Процедура ОписаниеКоманды(КомандаПриложения) Экспорт | ||
|
||
КомандаПриложения.Аргумент( | ||
"NAME", | ||
, | ||
"Название опции") | ||
.ТСтрока(); | ||
&Аргумент(Имя = "NAME", Описание = "Название опции") | ||
&ТСтрока | ||
Перем Имя; | ||
|
||
КомандаПриложения.Аргумент( | ||
"VALUE", | ||
, | ||
"Значение опции (массив строк)") | ||
.ТСтрока(); | ||
|
||
КонецПроцедуры | ||
&Аргумент(Имя = "VALUE", Описание = "Значение опции (массив строк)") | ||
&ТСтрока | ||
Перем Значение; | ||
|
||
// Обработчик выполнения команды | ||
// | ||
// Параметры: | ||
// КомандаПриложения - КомандаПриложения - Выполняемая команда | ||
// | ||
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт | ||
Имя = КомандаПриложения.ЗначениеАргумента("NAME"); | ||
Значение = КомандаПриложения.ЗначениеАргумента("VALUE"); | ||
&Пластилин | ||
Перем ФайлНастроек; | ||
|
||
Хранилище = ПараметрыOVM.ХранилищеНастроек(); | ||
Хранилище.Установить(Имя, Значение); | ||
Хранилище.Записать(); | ||
&КомандаПриложения(Имя = "config", Описание = "Настройки ovm. Прокси, сервера и т.п.") | ||
Процедура ПриСозданииОбъекта() | ||
КонецПроцедуры | ||
|
||
КонецПроцедуры | ||
&ВыполнениеКоманды | ||
Процедура ВыполнениеКоманды() Экспорт | ||
ФайлНастроек.Установить(Имя, Значение); | ||
ФайлНастроек.Записать(); | ||
КонецПроцедуры |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,18 @@ | ||
#Использовать "../../core" | ||
|
||
&ЛогOVM | ||
Перем Лог; | ||
|
||
&Пластилин | ||
Перем УстановщикOneScript; | ||
|
||
&Пластилин | ||
Перем ПараметрыOVM; | ||
|
||
&КомандаПриложения(Имя = "install i", Описание = "Установить OneScript указанных версий") | ||
Процедура ПриСозданииОбъекта() | ||
КонецПроцедуры | ||
|
||
// Заполняет описание команды для библиотеки cli | ||
// | ||
// Параметры: | ||
|
@@ -38,11 +49,11 @@ | |
// КомандаПриложения - КомандаПриложения - Выполняемая команда | ||
// | ||
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт | ||
|
||
МассивВерсийКУстановке = КомандаПриложения.ЗначениеАргумента("VERSION"); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. А тут специально не стал переводить на осень опции? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Там опциональная опция есть, типа добавляется по условию, autumn-cli так не умеет There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Nivanchenko fyi There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Заведешь ишусь пожалуйста? 🙂 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Посмотрел код команды, чо-т вообще не особо себе представляю, как это сделать на уровне метаданных. Хотя можно попробовать указать имя функции-предиката. Ну, либо выпилить условие :) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Можно в теории сделать аннотацию которая на входе будет принимать лямбду и захватывать объект в котором аннотация расположена. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
АлиасВерсии = КомандаПриложения.ЗначениеОпции("name"); | ||
ОчищатьКаталогУстановки = КомандаПриложения.ЗначениеОпции("clean"); | ||
|
||
Если ЗначениеЗаполнено(АлиасВерсии) И МассивВерсийКУстановке.Количество() > 1 Тогда | ||
ВызватьИсключение "Опция <--name> может быть задана только при установке одной версии OneScript"; | ||
КонецЕсли; | ||
|
@@ -52,13 +63,11 @@ | |
Иначе | ||
ИспользоватьХ64 = Ложь; | ||
КонецЕсли; | ||
|
||
УстановщикOneScript = Новый УстановщикOneScript(); | ||
|
||
|
||
Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл | ||
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ОчищатьКаталогУстановки, ИспользоватьХ64); | ||
КонецЦикла; | ||
|
||
Если МассивВерсийКУстановке.Количество() > 0 Тогда | ||
Лог.Информация( | ||
"Для начала использования версии OneScript, выполните команду: | ||
|
@@ -68,5 +77,3 @@ | |
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
Лог = ПараметрыOVM.ПолучитьЛог(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А он зачем? Не вижу импортов
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Импорты у autumn-cli/autumn-logos но там импорты версии которая не поддерживает упаковку в exe, овм просто задирает версию чтоб собраться
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А, ну так давай там бампнем сразу, чего тут тащить.