remote-claude 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/init.sh +127 -34
- package/package.json +1 -1
package/init.sh
CHANGED
|
@@ -61,14 +61,74 @@ check_uv() {
|
|
|
61
61
|
fi
|
|
62
62
|
|
|
63
63
|
print_warning "未找到 uv,正在安装..."
|
|
64
|
-
|
|
65
|
-
#
|
|
66
|
-
|
|
64
|
+
|
|
65
|
+
# 检测可用的 pip 命令
|
|
66
|
+
local PIP_CMD=""
|
|
67
|
+
if command -v pip3 &> /dev/null; then
|
|
68
|
+
PIP_CMD="pip3"
|
|
69
|
+
elif command -v pip &> /dev/null; then
|
|
70
|
+
PIP_CMD="pip"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# 方式一:官方安装脚本(需访问 astral.sh/GitHub)
|
|
74
|
+
if curl -LsSf --connect-timeout 10 https://astral.sh/uv/install.sh | sh 2>/dev/null; then
|
|
75
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
# 方式二:pip + PyPI(GitHub 访问受限时首选;国内镜像比 GitHub 稳定)
|
|
79
|
+
if ! command -v uv &> /dev/null && [[ -n "$PIP_CMD" ]]; then
|
|
80
|
+
print_warning "尝试 pip 安装 uv(官方 PyPI)..."
|
|
81
|
+
$PIP_CMD install uv --quiet 2>/dev/null && export PATH="$HOME/.local/bin:$PATH"
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
# 方式三:pip + 国内镜像(清华 PyPI,适合无法访问 GitHub/pypi.org 的内网环境)
|
|
85
|
+
if ! command -v uv &> /dev/null && [[ -n "$PIP_CMD" ]]; then
|
|
86
|
+
print_warning "尝试 pip 安装 uv(清华镜像)..."
|
|
87
|
+
$PIP_CMD install uv --quiet \
|
|
88
|
+
-i https://pypi.tuna.tsinghua.edu.cn/simple/ \
|
|
89
|
+
--trusted-host pypi.tuna.tsinghua.edu.cn 2>/dev/null \
|
|
90
|
+
&& export PATH="$HOME/.local/bin:$PATH"
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
# 方式四:conda/mamba(适合已有 Anaconda/Miniconda 环境的机器)
|
|
94
|
+
if ! command -v uv &> /dev/null; then
|
|
95
|
+
if command -v mamba &> /dev/null; then
|
|
96
|
+
print_warning "尝试 mamba 安装 uv..."
|
|
97
|
+
mamba install -c conda-forge uv -y --quiet 2>/dev/null || true
|
|
98
|
+
elif command -v conda &> /dev/null; then
|
|
99
|
+
print_warning "尝试 conda 安装 uv..."
|
|
100
|
+
conda install -c conda-forge uv -y --quiet 2>/dev/null || true
|
|
101
|
+
fi
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
# 方式五:brew(macOS 备用)
|
|
105
|
+
if ! command -v uv &> /dev/null && [[ "$OS" == "Darwin" ]] && command -v brew &> /dev/null; then
|
|
106
|
+
print_warning "尝试 brew install uv..."
|
|
107
|
+
brew install uv
|
|
108
|
+
fi
|
|
67
109
|
|
|
68
110
|
if command -v uv &> /dev/null; then
|
|
69
111
|
print_success "uv 安装成功"
|
|
112
|
+
|
|
113
|
+
# 确保 ~/.local/bin 写入 shell rc(uv 官方脚本可能写 .zprofile 而非 .zshrc)
|
|
114
|
+
local _RC
|
|
115
|
+
if [[ -n "$ZSH_VERSION" ]] || [[ "$(basename "$SHELL")" == "zsh" ]]; then
|
|
116
|
+
_RC="$HOME/.zshrc"
|
|
117
|
+
else
|
|
118
|
+
_RC="$HOME/.bashrc"
|
|
119
|
+
fi
|
|
120
|
+
if ! grep -qF "$HOME/.local/bin" "$_RC" 2>/dev/null; then
|
|
121
|
+
echo "" >> "$_RC"
|
|
122
|
+
echo "# uv" >> "$_RC"
|
|
123
|
+
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$_RC"
|
|
124
|
+
print_success "已将 \$HOME/.local/bin 写入 $_RC"
|
|
125
|
+
fi
|
|
70
126
|
else
|
|
71
|
-
print_error "uv
|
|
127
|
+
print_error "uv 安装失败,请手动安装,可选方式:"
|
|
128
|
+
print_info " pip3 install uv"
|
|
129
|
+
print_info " pip3 install uv -i https://pypi.tuna.tsinghua.edu.cn/simple/"
|
|
130
|
+
print_info " conda install -c conda-forge uv"
|
|
131
|
+
print_info " 详见: https://docs.astral.sh/uv/getting-started/installation/"
|
|
72
132
|
exit 1
|
|
73
133
|
fi
|
|
74
134
|
}
|
|
@@ -83,8 +143,19 @@ check_tmux() {
|
|
|
83
143
|
install_tmux() {
|
|
84
144
|
if [[ "$OS" == "Darwin" ]]; then
|
|
85
145
|
if ! command -v brew &> /dev/null; then
|
|
86
|
-
|
|
87
|
-
|
|
146
|
+
print_warning "未找到 Homebrew,正在自动安装..."
|
|
147
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
148
|
+
# 将 Homebrew 加入 PATH(Apple Silicon / Intel 路径不同)
|
|
149
|
+
if [[ -x "/opt/homebrew/bin/brew" ]]; then
|
|
150
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
151
|
+
elif [[ -x "/usr/local/bin/brew" ]]; then
|
|
152
|
+
eval "$(/usr/local/bin/brew shellenv)"
|
|
153
|
+
fi
|
|
154
|
+
if ! command -v brew &> /dev/null; then
|
|
155
|
+
print_error "Homebrew 安装失败,请手动安装后重试: https://brew.sh"
|
|
156
|
+
exit 1
|
|
157
|
+
fi
|
|
158
|
+
print_success "Homebrew 安装成功"
|
|
88
159
|
fi
|
|
89
160
|
brew install tmux
|
|
90
161
|
elif [[ "$OS" == "Linux" ]]; then
|
|
@@ -92,9 +163,16 @@ check_tmux() {
|
|
|
92
163
|
sudo apt-get update && sudo apt-get install -y tmux
|
|
93
164
|
elif command -v yum &> /dev/null; then
|
|
94
165
|
sudo yum install -y tmux
|
|
166
|
+
elif command -v pacman &> /dev/null; then
|
|
167
|
+
sudo pacman -Sy --noconfirm tmux
|
|
168
|
+
elif command -v apk &> /dev/null; then
|
|
169
|
+
sudo apk add --no-cache tmux
|
|
170
|
+
elif command -v zypper &> /dev/null; then
|
|
171
|
+
sudo zypper install -y tmux
|
|
95
172
|
else
|
|
96
|
-
|
|
97
|
-
|
|
173
|
+
print_warning "无法识别包管理器,尝试从源码编译 tmux..."
|
|
174
|
+
install_tmux_from_source
|
|
175
|
+
return
|
|
98
176
|
fi
|
|
99
177
|
fi
|
|
100
178
|
print_success "tmux 安装成功"
|
|
@@ -107,7 +185,9 @@ check_tmux() {
|
|
|
107
185
|
print_warning "包管理器版本不满足要求,尝试从源码编译 tmux ${TMUX_VERSION_TAG}..."
|
|
108
186
|
|
|
109
187
|
# 安装编译依赖
|
|
110
|
-
if
|
|
188
|
+
if [[ "$OS" == "Darwin" ]]; then
|
|
189
|
+
brew install libevent ncurses pkg-config bison 2>/dev/null || true
|
|
190
|
+
elif command -v apt-get &> /dev/null; then
|
|
111
191
|
sudo apt-get install -y build-essential libevent-dev libncurses5-dev libncursesw5-dev bison pkg-config
|
|
112
192
|
elif command -v yum &> /dev/null; then
|
|
113
193
|
sudo yum groupinstall -y "Development Tools"
|
|
@@ -148,11 +228,22 @@ check_tmux() {
|
|
|
148
228
|
sudo make -C "$SRC_DIR" install
|
|
149
229
|
else
|
|
150
230
|
make -C "$SRC_DIR" install
|
|
151
|
-
# 若 $HOME/.local/bin 不在 PATH
|
|
231
|
+
# 若 $HOME/.local/bin 不在 PATH 中,自动写入 shell 配置
|
|
152
232
|
if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
233
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
234
|
+
local _RC
|
|
235
|
+
if [[ "$(basename "$SHELL")" == "zsh" ]]; then
|
|
236
|
+
_RC="$HOME/.zshrc"
|
|
237
|
+
else
|
|
238
|
+
_RC="$HOME/.bashrc"
|
|
239
|
+
fi
|
|
240
|
+
local _PATH_LINE='export PATH="$HOME/.local/bin:$PATH"'
|
|
241
|
+
if ! grep -qF "$HOME/.local/bin" "$_RC" 2>/dev/null; then
|
|
242
|
+
echo "" >> "$_RC"
|
|
243
|
+
echo "# remote-claude: tmux 路径" >> "$_RC"
|
|
244
|
+
echo "$_PATH_LINE" >> "$_RC"
|
|
245
|
+
print_success "已自动将 \$HOME/.local/bin 加入 PATH(写入 $_RC)"
|
|
246
|
+
fi
|
|
156
247
|
fi
|
|
157
248
|
fi
|
|
158
249
|
|
|
@@ -181,18 +272,13 @@ check_tmux() {
|
|
|
181
272
|
else
|
|
182
273
|
print_warning "$TMUX_VERSION 版本过低,需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR} 或更高,正在升级..."
|
|
183
274
|
install_tmux
|
|
184
|
-
#
|
|
275
|
+
# 升级后再次验证,版本仍不满足则走源码编译(跨平台)
|
|
185
276
|
if ! check_version; then
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
print_warning "源码编译安装后版本仍不满足要求($(tmux -V)),请手动安装 tmux ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
|
|
190
|
-
WARNINGS+=("tmux 版本不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+,请手动升级")
|
|
191
|
-
else
|
|
192
|
-
print_success "tmux 已升级至 $(tmux -V)"
|
|
193
|
-
fi
|
|
277
|
+
install_tmux_from_source
|
|
278
|
+
if check_version; then
|
|
279
|
+
print_success "tmux 已升级至 $(tmux -V)"
|
|
194
280
|
else
|
|
195
|
-
print_warning "
|
|
281
|
+
print_warning "源码编译后版本仍不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
|
|
196
282
|
WARNINGS+=("tmux 版本不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+,请手动升级")
|
|
197
283
|
fi
|
|
198
284
|
else
|
|
@@ -203,14 +289,9 @@ check_tmux() {
|
|
|
203
289
|
print_warning "未找到 tmux,正在安装..."
|
|
204
290
|
install_tmux
|
|
205
291
|
if ! check_version; then
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
print_warning "源码编译安装后版本仍不满足要求($(tmux -V)),请手动安装 tmux ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
|
|
210
|
-
WARNINGS+=("tmux 版本不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+,请手动升级")
|
|
211
|
-
fi
|
|
212
|
-
else
|
|
213
|
-
print_warning "安装的版本不满足要求($(tmux -V)),请手动安装 tmux ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
|
|
292
|
+
install_tmux_from_source
|
|
293
|
+
if ! check_version; then
|
|
294
|
+
print_warning "源码编译后版本仍不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
|
|
214
295
|
WARNINGS+=("tmux 版本不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+,请手动升级")
|
|
215
296
|
fi
|
|
216
297
|
fi
|
|
@@ -354,9 +435,21 @@ configure_shell() {
|
|
|
354
435
|
BIN_DIR="$HOME/.local/bin"
|
|
355
436
|
else
|
|
356
437
|
BIN_DIR="$HOME/.local/bin"
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
438
|
+
# 自动写入 PATH 到 shell 配置文件
|
|
439
|
+
export PATH="$BIN_DIR:$PATH"
|
|
440
|
+
local _RC
|
|
441
|
+
if [[ -n "$ZSH_VERSION" ]] || [[ "$(basename "$SHELL")" == "zsh" ]]; then
|
|
442
|
+
_RC="$HOME/.zshrc"
|
|
443
|
+
else
|
|
444
|
+
_RC="$HOME/.bashrc"
|
|
445
|
+
fi
|
|
446
|
+
local _PATH_LINE='export PATH="$HOME/.local/bin:$PATH"'
|
|
447
|
+
if ! grep -qF "$HOME/.local/bin" "$_RC" 2>/dev/null; then
|
|
448
|
+
echo "" >> "$_RC"
|
|
449
|
+
echo "# remote-claude: 快捷命令路径" >> "$_RC"
|
|
450
|
+
echo "$_PATH_LINE" >> "$_RC"
|
|
451
|
+
print_success "已自动将 \$HOME/.local/bin 加入 PATH(写入 $_RC)"
|
|
452
|
+
fi
|
|
360
453
|
fi
|
|
361
454
|
mkdir -p "$BIN_DIR"
|
|
362
455
|
ln -sf "$SCRIPT_DIR/bin/cla" "$BIN_DIR/cla"
|