46 lines
1.1 KiB
Bash
Executable File
46 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Required parameters:
|
||
# @raycast.schemaVersion 1
|
||
# @raycast.title Set CNB Host
|
||
# @raycast.mode compact
|
||
|
||
# Optional parameters:
|
||
# @raycast.icon ⚙️
|
||
# @raycast.packageName @kevisual/raycast
|
||
# @raycast.argument1 { "type": "text", "placeholder": "user@host or vscode://vscode-remote/ssh-remote+user@host/..." }
|
||
|
||
# Documentation:
|
||
# @raycast.description Set the CNB SSH remote host used by Open CNB Remote VSCode
|
||
# @raycast.author abearxiong
|
||
# @raycast.authorURL https://raycast.com/abearxiong
|
||
|
||
CONFIG_DIR="$HOME/.config/my-raycast"
|
||
CONFIG_FILE="$CONFIG_DIR/cnb-host"
|
||
|
||
if [[ -z "$1" ]]; then
|
||
echo "请提供 CNB host 或 VSCode Remote URL"
|
||
exit 1
|
||
fi
|
||
|
||
INPUT="$1"
|
||
|
||
# 如果是 vscode:// 协议地址,提取 ssh-remote+ 后面的 host 部分
|
||
if [[ "$INPUT" == vscode://* ]]; then
|
||
# 提取 ssh-remote+<host> 后的内容,去掉路径部分
|
||
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"
|