diff --git a/sh/open-cnb-remote-vscode.sh b/sh/open-cnb-remote-vscode.sh new file mode 100755 index 0000000..e48ef42 --- /dev/null +++ b/sh/open-cnb-remote-vscode.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Required parameters: +# @raycast.schemaVersion 1 +# @raycast.title Open CNB Remote VSCode +# @raycast.mode silent + +# Optional parameters: +# @raycast.icon 🖥️ +# @raycast.packageName @kevisual/raycast + +# Documentation: +# @raycast.description SSH to CNB host, fuzzy select a project with fzf, then open it in VSCode Remote +# @raycast.author abearxiong +# @raycast.authorURL https://raycast.com/abearxiong + +CONFIG_FILE="$HOME/.config/my-raycast/cnb-host" +FZF_BIN="/usr/local/bin/fzf" + +if [[ ! -f "$CONFIG_FILE" ]]; then + osascript -e 'display alert "CNB Host 未配置" message "请先运行 Set CNB Host 脚本设置远程地址"' + exit 1 +fi + +CNB_HOST=$(cat "$CONFIG_FILE" | tr -d '[:space:]') + +if [[ -z "$CNB_HOST" ]]; then + osascript -e 'display alert "CNB Host 为空" message "请先运行 Set CNB Host 脚本设置远程地址"' + exit 1 +fi + +CMD="ssh '$CNB_HOST' 'find /workspace/projects /workspace/docker -maxdepth 1 -mindepth 1 -type d 2>/dev/null' | $FZF_BIN --prompt='CNB Remote > ' | xargs -I{} open 'vscode://vscode-remote/ssh-remote+${CNB_HOST}{}'" + +osascript < 后的内容,去掉路径部分 + HOST=$(echo "$INPUT" | sed 's|.*ssh-remote+||' | cut -d'/' -f1) +else + HOST="$INPUT" +fi + +HOST=$(echo "$HOST" | tr -d '[:space:]') + +if [[ -z "$HOST" ]]; then + echo "无法解析 host,请检查输入" + exit 1 +fi + +mkdir -p "$CONFIG_DIR" +echo "$HOST" > "$CONFIG_FILE" +echo "CNB host 已保存:$HOST"