remote-claude 0.1.1 → 0.1.2

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.
Files changed (2) hide show
  1. package/init.sh +99 -33
  2. package/package.json +1 -1
package/init.sh CHANGED
@@ -61,12 +61,45 @@ check_uv() {
61
61
  fi
62
62
 
63
63
  print_warning "未找到 uv,正在安装..."
64
- curl -LsSf https://astral.sh/uv/install.sh | sh
65
- # 重新加载 PATH
66
- export PATH="$HOME/.local/bin:$PATH"
64
+
65
+ # 方式一:官方安装脚本
66
+ if curl -LsSf https://astral.sh/uv/install.sh | sh 2>/dev/null; then
67
+ export PATH="$HOME/.local/bin:$PATH"
68
+ fi
69
+
70
+ # 方式二:brew(macOS 备用)
71
+ if ! command -v uv &> /dev/null && [[ "$OS" == "Darwin" ]] && command -v brew &> /dev/null; then
72
+ print_warning "官方脚本安装失败,尝试 brew install uv..."
73
+ brew install uv
74
+ fi
75
+
76
+ # 方式三:pip/pip3 备用
77
+ if ! command -v uv &> /dev/null; then
78
+ print_warning "尝试 pip 安装 uv..."
79
+ if command -v pip3 &> /dev/null; then
80
+ pip3 install uv --quiet
81
+ elif command -v pip &> /dev/null; then
82
+ pip install uv --quiet
83
+ fi
84
+ export PATH="$HOME/.local/bin:$PATH"
85
+ fi
67
86
 
68
87
  if command -v uv &> /dev/null; then
69
88
  print_success "uv 安装成功"
89
+
90
+ # 确保 ~/.local/bin 写入 shell rc(uv 官方脚本可能写 .zprofile 而非 .zshrc)
91
+ local _RC
92
+ if [[ -n "$ZSH_VERSION" ]] || [[ "$(basename "$SHELL")" == "zsh" ]]; then
93
+ _RC="$HOME/.zshrc"
94
+ else
95
+ _RC="$HOME/.bashrc"
96
+ fi
97
+ if ! grep -qF "$HOME/.local/bin" "$_RC" 2>/dev/null; then
98
+ echo "" >> "$_RC"
99
+ echo "# uv" >> "$_RC"
100
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$_RC"
101
+ print_success "已将 \$HOME/.local/bin 写入 $_RC"
102
+ fi
70
103
  else
71
104
  print_error "uv 安装失败,请手动安装: https://docs.astral.sh/uv/"
72
105
  exit 1
@@ -83,8 +116,19 @@ check_tmux() {
83
116
  install_tmux() {
84
117
  if [[ "$OS" == "Darwin" ]]; then
85
118
  if ! command -v brew &> /dev/null; then
86
- print_error "未找到 Homebrew,请先安装: https://brew.sh"
87
- exit 1
119
+ print_warning "未找到 Homebrew,正在自动安装..."
120
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
121
+ # 将 Homebrew 加入 PATH(Apple Silicon / Intel 路径不同)
122
+ if [[ -x "/opt/homebrew/bin/brew" ]]; then
123
+ eval "$(/opt/homebrew/bin/brew shellenv)"
124
+ elif [[ -x "/usr/local/bin/brew" ]]; then
125
+ eval "$(/usr/local/bin/brew shellenv)"
126
+ fi
127
+ if ! command -v brew &> /dev/null; then
128
+ print_error "Homebrew 安装失败,请手动安装后重试: https://brew.sh"
129
+ exit 1
130
+ fi
131
+ print_success "Homebrew 安装成功"
88
132
  fi
89
133
  brew install tmux
90
134
  elif [[ "$OS" == "Linux" ]]; then
@@ -92,9 +136,16 @@ check_tmux() {
92
136
  sudo apt-get update && sudo apt-get install -y tmux
93
137
  elif command -v yum &> /dev/null; then
94
138
  sudo yum install -y tmux
139
+ elif command -v pacman &> /dev/null; then
140
+ sudo pacman -Sy --noconfirm tmux
141
+ elif command -v apk &> /dev/null; then
142
+ sudo apk add --no-cache tmux
143
+ elif command -v zypper &> /dev/null; then
144
+ sudo zypper install -y tmux
95
145
  else
96
- print_error "无法自动安装 tmux,请手动安装 3.6 或更高版本"
97
- exit 1
146
+ print_warning "无法识别包管理器,尝试从源码编译 tmux..."
147
+ install_tmux_from_source
148
+ return
98
149
  fi
99
150
  fi
100
151
  print_success "tmux 安装成功"
@@ -107,7 +158,9 @@ check_tmux() {
107
158
  print_warning "包管理器版本不满足要求,尝试从源码编译 tmux ${TMUX_VERSION_TAG}..."
108
159
 
109
160
  # 安装编译依赖
110
- if command -v apt-get &> /dev/null; then
161
+ if [[ "$OS" == "Darwin" ]]; then
162
+ brew install libevent ncurses pkg-config bison 2>/dev/null || true
163
+ elif command -v apt-get &> /dev/null; then
111
164
  sudo apt-get install -y build-essential libevent-dev libncurses5-dev libncursesw5-dev bison pkg-config
112
165
  elif command -v yum &> /dev/null; then
113
166
  sudo yum groupinstall -y "Development Tools"
@@ -148,11 +201,22 @@ check_tmux() {
148
201
  sudo make -C "$SRC_DIR" install
149
202
  else
150
203
  make -C "$SRC_DIR" install
151
- # 若 $HOME/.local/bin 不在 PATH 中,提示用户
204
+ # 若 $HOME/.local/bin 不在 PATH 中,自动写入 shell 配置
152
205
  if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
153
- print_warning "tmux 已安装到 $HOME/.local/bin,请将其加入 PATH"
154
- print_warning " echo 'export PATH=\"\$HOME/.local/bin:\$PATH\"' >> ~/.bashrc && source ~/.bashrc"
155
- WARNINGS+=("tmux 安装在 \$HOME/.local/bin,请将其加入 PATH 后重新运行 init.sh")
206
+ export PATH="$HOME/.local/bin:$PATH"
207
+ local _RC
208
+ if [[ "$(basename "$SHELL")" == "zsh" ]]; then
209
+ _RC="$HOME/.zshrc"
210
+ else
211
+ _RC="$HOME/.bashrc"
212
+ fi
213
+ local _PATH_LINE='export PATH="$HOME/.local/bin:$PATH"'
214
+ if ! grep -qF "$HOME/.local/bin" "$_RC" 2>/dev/null; then
215
+ echo "" >> "$_RC"
216
+ echo "# remote-claude: tmux 路径" >> "$_RC"
217
+ echo "$_PATH_LINE" >> "$_RC"
218
+ print_success "已自动将 \$HOME/.local/bin 加入 PATH(写入 $_RC)"
219
+ fi
156
220
  fi
157
221
  fi
158
222
 
@@ -181,18 +245,13 @@ check_tmux() {
181
245
  else
182
246
  print_warning "$TMUX_VERSION 版本过低,需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR} 或更高,正在升级..."
183
247
  install_tmux
184
- # 升级后再次验证
248
+ # 升级后再次验证,版本仍不满足则走源码编译(跨平台)
185
249
  if ! check_version; then
186
- if [[ "$OS" == "Linux" ]]; then
187
- install_tmux_from_source
188
- if ! check_version; then
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
250
+ install_tmux_from_source
251
+ if check_version; then
252
+ print_success "tmux 已升级至 $(tmux -V)"
194
253
  else
195
- print_warning "升级后版本仍不满足要求($(tmux -V)),请手动安装 tmux ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
254
+ print_warning "源码编译后版本仍不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
196
255
  WARNINGS+=("tmux 版本不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+,请手动升级")
197
256
  fi
198
257
  else
@@ -203,14 +262,9 @@ check_tmux() {
203
262
  print_warning "未找到 tmux,正在安装..."
204
263
  install_tmux
205
264
  if ! check_version; then
206
- if [[ "$OS" == "Linux" ]]; then
207
- install_tmux_from_source
208
- if ! check_version; then
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}+"
265
+ install_tmux_from_source
266
+ if ! check_version; then
267
+ print_warning "源码编译后版本仍不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+"
214
268
  WARNINGS+=("tmux 版本不满足要求($(tmux -V)),需要 ${REQUIRED_MAJOR}.${REQUIRED_MINOR}+,请手动升级")
215
269
  fi
216
270
  fi
@@ -354,9 +408,21 @@ configure_shell() {
354
408
  BIN_DIR="$HOME/.local/bin"
355
409
  else
356
410
  BIN_DIR="$HOME/.local/bin"
357
- print_warning "cla/cl/remote-claude 将安装到 $BIN_DIR,但该目录不在 PATH 中"
358
- print_info "请将以下行添加到 shell 配置文件(~/.zshrc 或 ~/.bashrc):"
359
- echo " export PATH=\"\$HOME/.local/bin:\$PATH\""
411
+ # 自动写入 PATH shell 配置文件
412
+ export PATH="$BIN_DIR:$PATH"
413
+ local _RC
414
+ if [[ -n "$ZSH_VERSION" ]] || [[ "$(basename "$SHELL")" == "zsh" ]]; then
415
+ _RC="$HOME/.zshrc"
416
+ else
417
+ _RC="$HOME/.bashrc"
418
+ fi
419
+ local _PATH_LINE='export PATH="$HOME/.local/bin:$PATH"'
420
+ if ! grep -qF "$HOME/.local/bin" "$_RC" 2>/dev/null; then
421
+ echo "" >> "$_RC"
422
+ echo "# remote-claude: 快捷命令路径" >> "$_RC"
423
+ echo "$_PATH_LINE" >> "$_RC"
424
+ print_success "已自动将 \$HOME/.local/bin 加入 PATH(写入 $_RC)"
425
+ fi
360
426
  fi
361
427
  mkdir -p "$BIN_DIR"
362
428
  ln -sf "$SCRIPT_DIR/bin/cla" "$BIN_DIR/cla"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remote-claude",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "双端共享 Claude CLI 工具",
5
5
  "bin": {
6
6
  "remote-claude": "bin/remote-claude",