В этой статьей я покажу, как можно добавить свой скрипт в Raycast на примере проверки открытых портов на серверах.
Я очень часто пользуюсь сервисами для проверки открытых портов на серверах, чтобы быстро понять закрыт ли у меня определенный порт на сервере или нет. Для этого в закладках держал вот этот сайт https://www.yougetsignal.com/tools/open-ports/ (один из многих, на которых можно проверять порты)
Не так давно писал про Raycast как замену для Alfred, и про то, что я довольно быстро разобрался как добавить свой скрипт в быстрый запуск. Собственно, даже упоминал этот скрипт в том посте, но хочу рассказать чуть подробнее.
В общем, так как мне нравится тот сайт, я посмотрел через «консоль разработчика» какой запрос делается в момент нажатия на кнопку Check.
Создаем скрипт #
Оставалось только немного поэкспериментировать с параметрами curl запроса и получился такой:
curl -s -X POST https://ports.yougetsignal.com/check-port.php\?remoteAddress\=$1\&portNumber\=$2
$1
и $2
это аргументы, которые были переданы .sh скрипту при запуске (например scripts.sh foo bar
. $1 = foo
, $2 = bar
и так далее. $0
это всегда название файла)
Нам остается только «выцепить» Open или Closed из ответа. Делаю через grep -o "Open\|Closed"
. Параметр -o
выведет только ту строку, которая матчится с регуляркой, а у нас там «или Open или Closed».
Объединяю две команды (curl
и grep
) через пайп (символ |
). Пайп (pipeline) переводит стандартный вывод (stdout) первой команды на стандартный ввод (stdin) второй.
Добавляем эту команду в наш .sh
файл, не забывая
шебанг #!/bin/bash
.
Добавляем скрипт в Raycast #
Но, что сделать, чтобы Raycast «увидел» наш скрипт?
Нужно добавить некоторую мета-информацию — название, поля для интерактивного ввода, документацию… Внимательнее можно посмотреть на нее в моем скрипте, должно быть все понятно. Или в официальных примерах.
Затем заходим в настройки Raycast (Cmd
+ ,
).
Открываем вкладку Extensions, ищем там пункт Script Command (через поиск почему-то не находится) и нажимаем на него. Справа будет Add directories, в ней и добавляем директорию с нашим скриптом.
Сразу вешаем на него какой-нибудь короткий Alias:
Если добавить новые скрипты в эту директорию, то они автоматически появятся в Raycast. Максимум — нужно будет запустить команду Reload Script Directories.
Теперь пробуем запустить:
Единственное с чем я не заморачивался — это цвет «лампочки» внизу — он базируется на коде ответа скрипта, поэтому всегда зеленый, если curl был успешен.
Как видишь, добавить свой скрипт в Raycast совсем не сложно. Главное, чтобы была фантазия.
Ты можешь скачать мой репозиторий со скриптами и добавить его по инструкции из README. Вот ссылка 👉 https://github.com/etoosamoe/raycast-scripts
А подписавшись на мой телеграм-канал ты точно не пропустишь новые статьи и интересности из интернета ✌️