From ad3ababd5ace8f53b7d2cdd56a8361e29daef833 Mon Sep 17 00:00:00 2001 From: Esteban Vincent <73063856+EstebanVincent@users.noreply.github.com> Date: Tue, 19 May 2026 16:18:52 +0200 Subject: [PATCH] feat(ssh): add ssh remote raycast script with env-based auth (#4) --- scripts/ssh_remote.zsh | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 scripts/ssh_remote.zsh diff --git a/scripts/ssh_remote.zsh b/scripts/ssh_remote.zsh new file mode 100755 index 0000000..748c538 --- /dev/null +++ b/scripts/ssh_remote.zsh @@ -0,0 +1,38 @@ +#!/bin/zsh + +# Required parameters: +# @raycast.schemaVersion 1 +# @raycast.title SSH Remote +# @raycast.mode silent +# @raycast.argument1 { "type": "text", "placeholder": "Target (e.g. pi4, pi4vpn, pi5)" } + +# Optional parameters: +# @raycast.icon 🖥️ +# @raycast.description SSH into any remote — prefix maps to {PREFIX}_ADDRESS and {PREFIX}_PASSWORD in ssh_remote.env + +# Documentation: +# @raycast.author Esteban Vincent + +# shellcheck source=/dev/null +source "$HOME/Raycast/utils.zsh" + +PREFIX=$(echo "$1" | tr '[:lower:]' '[:upper:]' | tr '-' '_') +ADDRESS_VAR="${PREFIX}_ADDRESS" +PASSWORD_VAR="${PREFIX}_PASSWORD" + +load_env "$ADDRESS_VAR" "$PASSWORD_VAR" || exit 1 + +ADDRESS="${(P)ADDRESS_VAR}" +PASSWORD="${(P)PASSWORD_VAR}" + +if [[ -n "$PASSWORD" ]]; then + SSH_CMD="sshpass -p '${PASSWORD}' ssh ${ADDRESS}" +else + SSH_CMD="ssh ${ADDRESS}" +fi + +osascript \ + -e "tell application \"Terminal\" to do script \"${SSH_CMD}\"" \ + -e "tell application \"Terminal\" to activate" + +echo "Connecting to $1 ($ADDRESS)"