|
74 | 74 | СтрокаОпций = СтрСоединить(ОписаниеКоманды.Опции, " "); |
75 | 75 |
|
76 | 76 | СтрокиCase.Добавить(" " + ПаттернCase + ")"); |
77 | | - СтрокиCase.Добавить(" COMPREPLY=($(compgen -W """ + СтрокаОпций + """ -- ""$cur""))"); |
| 77 | + Если ЗначениеЗаполнено(ОписаниеКоманды.КомандаВерсий) Тогда |
| 78 | + СтрокиCase.Добавить(" if [[ ""$cur"" == -* ]]; then"); |
| 79 | + СтрокиCase.Добавить(" COMPREPLY=($(compgen -W """ + СтрокаОпций + """ -- ""$cur""))"); |
| 80 | + СтрокиCase.Добавить(" else"); |
| 81 | + СтрокиCase.Добавить(" local versions"); |
| 82 | + СтрокиCase.Добавить(" versions=$(ovm " + ОписаниеКоманды.КомандаВерсий + " 2>/dev/null | awk '{print $1}')"); |
| 83 | + СтрокиCase.Добавить(" COMPREPLY=($(compgen -W ""$versions"" -- ""$cur""))"); |
| 84 | + СтрокиCase.Добавить(" fi"); |
| 85 | + Иначе |
| 86 | + СтрокиCase.Добавить(" COMPREPLY=($(compgen -W """ + СтрокаОпций + """ -- ""$cur""))"); |
| 87 | + КонецЕсли; |
78 | 88 | СтрокиCase.Добавить(" ;;"); |
79 | 89 | КонецЕсли; |
80 | 90 | КонецЦикла; |
|
131 | 141 | Для Каждого Команда Из КорневаяКоманда.ПолучитьПодкоманды() Цикл |
132 | 142 | Команда.НачалоЗапуска(); |
133 | 143 |
|
134 | | - ОписаниеКоманды = Новый Структура("Имена, Опции, Подкоманды"); |
135 | | - ОписаниеКоманды.Имена = Команда.ПолучитьСинонимы(); |
136 | | - ОписаниеКоманды.Опции = ПолучитьОпцииКоманды(Команда); |
137 | | - ОписаниеКоманды.Подкоманды = ПолучитьПодкомандыКоманды(Команда); |
| 144 | + ОписаниеКоманды = Новый Структура("Имена, Опции, Подкоманды, КомандаВерсий"); |
| 145 | + ОписаниеКоманды.Имена = Команда.ПолучитьСинонимы(); |
| 146 | + ОписаниеКоманды.Опции = ПолучитьОпцииКоманды(Команда); |
| 147 | + ОписаниеКоманды.Подкоманды = ПолучитьПодкомандыКоманды(Команда); |
| 148 | + ОписаниеКоманды.КомандаВерсий = КомандаПолученияВерсий(ОписаниеКоманды.Имена); |
138 | 149 |
|
139 | 150 | Результат.Добавить(ОписаниеКоманды); |
140 | 151 | КонецЦикла; |
|
161 | 172 |
|
162 | 173 | КонецФункции |
163 | 174 |
|
| 175 | +Функция КомандаПолученияВерсий(ИменаКоманды) |
| 176 | + |
| 177 | + Для Каждого Имя Из ИменаКоманды Цикл |
| 178 | + Если Имя = "use" Тогда |
| 179 | + Возврат "ls -q"; |
| 180 | + ИначеЕсли Имя = "install" Тогда |
| 181 | + Возврат "ls -r"; |
| 182 | + КонецЕсли; |
| 183 | + КонецЦикла; |
| 184 | + |
| 185 | + Возврат ""; |
| 186 | + |
| 187 | +КонецФункции |
| 188 | + |
164 | 189 | Функция ПолучитьОпцииКоманды(Команда) |
165 | 190 |
|
166 | 191 | Опции = Новый Массив(); |
|
0 commit comments