docs:blog:2024:01:cheat_powershell
Динамические набор параметров и небольшой лайфхак
Хотите немного магии? Она есть у меня!
В очередной раз решив немного поковырять настройки своего терминала, вспомнил про замечательный ресурс https://cheat.sh. А ещё я вспомнил, что хотел прикрутить его к своему терминалу, чтобы быстро и удобно получать справку по командам и утилитам (например 7z
, yt-dlp
…). А что может быть удобнее автоподстановки доступных на cheat.sh команд?
Итак. Всё что нужно – сделать функцию, в которой будет реализован механизм получения её параметров из внешнего источника. Собственно, решение я подсмотрел на stackoverflow, там развернули использование атрибута ValidateScript
и даже предложили как сделать прогнозирование.
Сама функция:
Function cheat { <# profile function #> [CmdletBinding()] param ( [Parameter(Mandatory)] [ValidateScript( { $_ -in (curl cht.sh/:list) }, ErrorMessage = 'Please specify the name of the command in the query.' )] [ArgumentCompleter( { param($cmd, $param, $wordToComplete) # This is the duplicated part of the code in the [ValidateScipt] attribute. [array] $validValues = (curl cht.sh/:list) $validValues -like "$wordToComplete*" } )] [String] $command, [String] $question ) if ($question) { [String] $command = $command + '/' + $question } curl cht.sh/$command }
- Дополнительно добавил поддержку
question
, т.к.cheat.sh
умеет вот такоеcheat powershell how+select+and+filter+object
Только авторизованные участники могут оставлять комментарии.
docs/blog/2024/01/cheat_powershell.txt · Последнее изменение: 17.08.2024 10:42 — philip