forked from vanessa-opensource/ovm
-
Notifications
You must be signed in to change notification settings - Fork 9
Подготовка к поддержке V2 и исправление ошибки в 1.6.0 #43
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
Merged
Merged
Changes from 7 commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
110b543
Добавлена dev-зависимость moskito
EvilBeaver 196fd4e
Тесты в первом приближении
EvilBeaver 72106e1
Переписал разрез тестов поудобнее
EvilBeaver 82ba57d
Прописаны новые желуди вручную
EvilBeaver 1c03d9d
Версия moskito
EvilBeaver 5f0bbce
Инициализация СисИнфо в ПараметрыOVM перенесена в конструктор
EvilBeaver 7df8922
Финальный перевод строки
EvilBeaver a88aa7c
Переход на autumn-library/workflows для тестирования и обновление зав…
sfaqer 15fd2a2
Добавлен прогон 1bdd на dev
sfaqer 1f2949b
Ещё одна попытка запустить 1bdd на dev
sfaqer e249ab8
И ещё разок
sfaqer aa7b66a
Исправлена опечатка
sfaqer 778e9f7
Вернул проверку наличия opm
sfaqer 56da812
Разделил проверку наличия oscript и opm отдельная для Lin и Win
sfaqer 98fa410
Восстановлен утерянный импорт
sfaqer f3abe36
Получение архитектуры процессора через табакерку
EvilBeaver 4313d78
В фича файлах теперь проверяется текущий проект а не ovm установленны…
sfaqer a33fa53
Переделал зависимости
EvilBeaver aa4ba95
Неправильный дефолт
EvilBeaver a977ffe
Строка с логом ошибочно добавлена в коммит
EvilBeaver File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| #Использовать cpuinfo | ||
|
|
||
| Перем СистемнаяИнформация; | ||
| Перем ИнформацияОПроцессоре; | ||
|
|
||
| &Желудь | ||
| Процедура ПриСозданииОбъекта() | ||
| // получение cpuinfo тяжелая операция с запуском процессов | ||
| // поэтому инициализация ленивая и в конструкторе желудя не выполняется. | ||
| КонецПроцедуры | ||
|
|
||
| Функция ТипПлатформы() Экспорт | ||
| Инициализировать(); | ||
| Возврат СистемнаяИнформация.ТипПлатформы; | ||
| КонецФункции | ||
|
|
||
| Функция АрхитектураПроцессора() Экспорт | ||
| Инициализировать(); | ||
| Возврат ИнформацияОПроцессоре.Архитектура; | ||
| КонецФункции | ||
|
|
||
| Процедура Инициализировать() | ||
| Если СистемнаяИнформация = Неопределено Тогда | ||
| СистемнаяИнформация = Новый СистемнаяИнформация; | ||
| ИнформацияОПроцессоре = Новый ИнформацияОПроцессоре; | ||
| КонецЕсли; | ||
| КонецПроцедуры | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,112 @@ | ||
| Перем ДетекторОкружения; | ||
|
|
||
| Перем ИспользоватьFDD; | ||
| Перем ИспользоватьХ64; | ||
| Перем ЭтоДистрибутивНеткор; | ||
|
|
||
coderabbitai[bot] marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| Процедура ПриСозданииОбъекта(Знач Детектор) | ||
| ДетекторОкружения = Детектор; | ||
| КонецПроцедуры | ||
nixel2007 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Функция ИспользоватьFDD(Знач Использовать) Экспорт | ||
| ИспользоватьFDD = Использовать; | ||
| Возврат ЭтотОбъект; | ||
| КонецФункции | ||
|
|
||
| Функция ИспользоватьХ64(Знач Использовать) Экспорт | ||
| ИспользоватьХ64 = Использовать; | ||
| Возврат ЭтотОбъект; | ||
| КонецФункции | ||
|
|
||
| Функция ЭтоДистрибутивНеткор(Знач Да) Экспорт | ||
| ЭтоДистрибутивНеткор = Да; | ||
| Возврат ЭтотОбъект; | ||
| КонецФункции | ||
|
|
||
| Функция Выбрать(Знач ПереченьФайлов) Экспорт | ||
|
|
||
| Если ЭтоДистрибутивНеткор = Истина Тогда | ||
| ВидДистрибутива = ?(ИспользоватьFDD, "fdd", ТипДистрибутиваТекущейПлатформы()); | ||
| ИначеЕсли ЭтоДистрибутивНеткор = Ложь Тогда | ||
| ВидДистрибутива = "zip"; | ||
| ИначеЕсли ИспользоватьFDD Тогда | ||
| ЭтоДистрибутивНеткор = Истина; | ||
| ВидДистрибутива = "fdd"; | ||
| Иначе | ||
| // Это установка по алиасу и мы не знаем, версия 2 это или нет. | ||
| // Определим это с двух попыток ниже. | ||
| ВидДистрибутива = Неопределено; | ||
| КонецЕсли; | ||
|
|
||
| Возврат НайтиПодходящийДистрибутив(ПереченьФайлов, ВидДистрибутива, ИспользоватьХ64); | ||
|
|
||
| КонецФункции | ||
|
|
||
| Функция ПризнакАрхитектуры(Знач ИспользоватьХ64) | ||
| Возврат ?(ИспользоватьХ64, "x64", "x86"); | ||
| КонецФункции | ||
|
|
||
| Функция НайтиПодходящийДистрибутив(Знач ПереченьФайлов, Знач ВидДистрибутива, Знач ИспользоватьХ64) | ||
| КритерийПоиска = Новый Структура; | ||
| КритерийПоиска.Вставить("Вид"); | ||
| КритерийПоиска.Вставить("Архитектура"); | ||
|
|
||
| РежимАлиаса = (ВидДистрибутива = Неопределено); | ||
|
|
||
| Если РежимАлиаса Тогда | ||
| КритерийПоиска.Вид = ТипДистрибутиваТекущейПлатформы(); | ||
| Иначе | ||
| КритерийПоиска.Вид = ВидДистрибутива; | ||
| КонецЕсли; | ||
|
|
||
| КритерийПоиска.Архитектура = ПризнакАрхитектуры(ИспользоватьХ64); | ||
|
|
||
| НайденныеСтроки = ПереченьФайлов.НайтиСтроки(КритерийПоиска); | ||
| Если НайденныеСтроки.Количество() <> 1 Тогда | ||
| // Это может быть установка по алиасу и тогда есть шанс у дистрибутива zip для версии 1 | ||
| Если РежимАлиаса Тогда | ||
| КритерийПоиска.Вид = "zip"; | ||
| КонецЕсли; | ||
|
|
||
| НайденныеСтроки = ПереченьФайлов.НайтиСтроки(КритерийПоиска); | ||
| Если НайденныеСтроки.Количество() <> 1 Тогда | ||
| ТекстОшибки = СтрШаблон( | ||
| "Не найден дистрибутив для критериев: Вид=%1, Архитектура=%2. Найдено файлов: %3", | ||
| КритерийПоиска.Вид, | ||
| ?(КритерийПоиска.Свойство("Архитектура"), КритерийПоиска.Архитектура, "<любая>"), | ||
| НайденныеСтроки.Количество() | ||
| ); | ||
| ВызватьИсключение ТекстОшибки; | ||
| КонецЕсли; | ||
| КонецЕсли; | ||
|
|
||
| Возврат НайденныеСтроки[0].Ссылка; | ||
| КонецФункции | ||
|
|
||
| Функция ТипДистрибутиваТекущейПлатформы() | ||
|
|
||
| ТекущаяПлатформа = ДетекторОкружения.ТипПлатформы(); | ||
|
|
||
| Если ТекущаяПлатформа = ТипПлатформы.Windows_x86_64 | ||
| Или ТекущаяПлатформа = ТипПлатформы.Windows_x86 Тогда | ||
| Возврат "scd-win"; | ||
| ИначеЕсли ТекущаяПлатформа = ТипПлатформы.Linux_x86_64 | ||
| Или ТекущаяПлатформа = ТипПлатформы.Linux_x86 Тогда | ||
| Возврат "scd-lin"; | ||
| ИначеЕсли ТекущаяПлатформа = ТипПлатформы.MacOS_x86_64 | ||
| Или ТекущаяПлатформа = ТипПлатформы.MacOS_x86 Тогда | ||
|
|
||
| АрхитектураПроцессора = ДетекторОкружения.АрхитектураПроцессора(); | ||
|
|
||
| Если АрхитектураПроцессора = АрхитектурыПроцессоров.ARM | ||
| Или АрхитектураПроцессора = АрхитектурыПроцессоров.ARM64 Тогда | ||
| Возврат "osx-arm64"; | ||
| Иначе | ||
| Возврат "osx-x64"; | ||
| КонецЕсли; | ||
|
|
||
| Иначе | ||
| ВызватьИсключение "Не удалось определить текущую операционную систему"; | ||
| КонецЕсли; | ||
|
|
||
| КонецФункции | ||
nixel2007 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Я пока не осознал концепт и пользу табакерок... Можешь разжевать?
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.
табакерка это Lazy? Я могу просто в геттере дергать Табакерка.Достать()? Оно кеширует результат?
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.
Табакерка - это ObjectProvider. Если никто явно не требует внедрения жёлудя-одиночки, то он не инициализируется, да.
И да, Табакерка.Достать() сделегирует вызов в Поделка.НайтиЖелудь и там сработает обычный поиск желудей-одиночек в мапе (и отложенная инициализация, если его никто ещё не запрашивал).
Естественно, все меняется, если ты объявишь жёлудь Компанейским, но тут это не нужно.
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.
Все же я не очень понимаю прелесть табакерок. Если я хочу ленивую инициализацию, то я должен по-сути нарушить инкапсуляцию ДетектораОкружения. Каждый клиент этого желудя должен знать, что его нельзя инжектить напрямую, надо определять табакерки. Т.е. клиент класса должен знать его внутреннее устройство...
Или я неверно использую табакерку. Я делаю так:
и вот так использую в
УстановщикOneScriptТ.е. я должен знать внутреннее устройство прилепляемого класса, чтобы не прилеплять его напрямую. Мне кажется это как-то неправильно.
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.
@nixel2007 autumn-library/autumn#120
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.
А, я чёт не разобрался, вы тут хотите cpuinfo зажелудить, ага.
Можно в заготовку подкинуть типа
Поделка.ДобавитьЗавязь( "&Завязь(""ИнформацияОПроцессоре"", Тип = ""ИнформацияОПроцессоре"") () -> | Возврат Новый ИнформацияОПроцессоре(); |" );И да, табакерить прям в конструктор, в целом можно и системную информацию аналогично подкинуть
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.
Или так, да.