Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


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 · Последнее изменение: 19.01.2024 19:42 — philip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki