-
Notifications
You must be signed in to change notification settings - Fork 31
[WIP] opm show #244
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
base: master
Are you sure you want to change the base?
[WIP] opm show #244
Changes from 1 commit
c841178
8fe7cb3
298dd4e
95abae2
dc2e5a4
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 |
---|---|---|
@@ -0,0 +1,103 @@ | ||
/////////////////////////////////////////////////////////////////////////////////////////////////// | ||
// Прикладной интерфейс | ||
|
||
Процедура ОписаниеКоманды(Знач КомандаПриложения) Экспорт | ||
|
||
КомандаПриложения.Опция("l local", Ложь, "Искать в локально установленных пакета"); | ||
|
||
КомандаПриложения.Аргумент("PACKAGE", "", "Строка поиска пакета в хабе") | ||
.ТМассивСтрок() | ||
.Обязательный(Истина); | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт | ||
|
||
УстановкаВЛокальныйКаталог = КомандаПриложения.ЗначениеОпции("local"); | ||
МассивПоисковыхЗапросов = КомандаПриложения.ЗначениеАргумента("PACKAGE"); | ||
|
||
МассивРегулярныхВыражений = Новый Массив; | ||
|
||
Для Каждого мТекстЗапроса Из МассивПоисковыхЗапросов Цикл | ||
|
||
РегулярноеВыражение = Новый РегулярноеВыражение(мТекстЗапроса); | ||
РегулярноеВыражение.ИгнорироватьРегистр = Истина; | ||
|
||
МассивРегулярныхВыражений.Добавить(РегулярноеВыражение); | ||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
КонецЦикла; | ||
|
||
ПутьККаталогуПакетов = ПолучитьЗначениеСистемнойНастройки("lib.system"); | ||
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. lib.additional? Или на нем сам opm висит со своими oscript_modules? 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. Им пользуются, но мне кажется, у опм он будет свой переопределенное, а не системный |
||
Если УстановкаВЛокальныйКаталог Тогда | ||
ПутьККаталогуПакетов = ОбъединитьПути(ТекущийКаталог(), КонстантыOpm.ЛокальныйКаталогУстановкиПакетов); | ||
КонецЕсли; | ||
|
||
КэшУстановленныхПакетов = Новый КэшУстановленныхПакетов(ПутьККаталогуПакетов); | ||
УстановленныеПакеты = КэшУстановленныхПакетов.ПолучитьУстановленныеПакеты(); | ||
|
||
КоличествоНайденныхПакетов = 0; | ||
Для Каждого УстановленныйПакет Из УстановленныеПакеты Цикл | ||
|
||
ИмяПакета = УстановленныйПакет.Ключ; | ||
Для Каждого мРегулярноеВыражение Из МассивРегулярныхВыражений Цикл | ||
|
||
Если мРегулярноеВыражение.Совпадает(ИмяПакета) Тогда | ||
КоличествоНайденныхПакетов = КоличествоНайденныхПакетов + 1; | ||
ВывестиИнформациюОПакете(УстановленныйПакет.Значение); | ||
Прервать; | ||
КонецЕсли; | ||
|
||
КонецЦикла; | ||
|
||
КонецЦикла; | ||
|
||
Сообщить(СтрШаблон("Найдено пакетов: %1", КоличествоНайденныхПакетов)); | ||
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. результат работы не есть логи, на мой взгляд. |
||
|
||
КонецПроцедуры | ||
|
||
Процедура ВывестиИнформациюОПакете(Знач УстановленныйПакет) | ||
|
||
Сообщить(СтрШаблон("Каталог: %1", УстановленныйПакет.КаталогПакета)); | ||
|
||
ОписаниеПакета = УстановленныйПакет.МетаданныеПакета; | ||
Если ТипЗнч(ОписаниеПакета) <> Тип("Булево") Тогда | ||
|
||
Свойства = ОписаниеПакета.Свойства(); | ||
Для Каждого мСвойство Из Свойства Цикл | ||
Сообщить(СтрШаблон(" %1: %2", мСвойство.Ключ, мСвойство.Значение)); | ||
КонецЦикла; | ||
|
||
Зависимости = ОписаниеПакета.Зависимости(); | ||
Зависимости.Сортировать("ДляРазработки"); | ||
Для Каждого мЗависимость Из Зависимости Цикл | ||
|
||
Префикс = ?(мЗависимость.ДляРазработки, "Разработка зависит от", "Зависит от"); | ||
СтрокаВерсииЗависимости = СтрокаВерсииЗависимости(мЗависимость); | ||
|
||
Сообщить(СтрШаблон(" %1 %2%3", Префикс, мЗависимость.ИмяПакета, СтрокаВерсииЗависимости)); | ||
|
||
КонецЦикла; | ||
|
||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
Функция СтрокаВерсииЗависимости(Знач мЗависимость) | ||
|
||
Подстроки = Новый Массив; | ||
|
||
Если ЗначениеЗаполнено(мЗависимость.МинимальнаяВерсия) Тогда | ||
Подстроки.Добавить(">=" + мЗависимость.МинимальнаяВерсия); | ||
КонецЕсли; | ||
|
||
Если ЗначениеЗаполнено(мЗависимость.МаксимальнаяВерсия) Тогда | ||
Подстроки.Добавить("<=" + мЗависимость.МаксимальнаяВерсия); | ||
КонецЕсли; | ||
|
||
Если ЗначениеЗаполнено(Подстроки) Тогда | ||
Возврат " (" + СтрСоединить(Подстроки, ", ") + ")"; | ||
КонецЕсли; | ||
|
||
Возврат ""; | ||
|
||
КонецФункции |
Uh oh!
There was an error while loading. Please reload this page.