#!/bin/sh # PhoneBase CLI installer # Usage: curl -fsSL https://get.phonebase.cloud | sh set -e REPO="https://api.phonebase.cloud/cli" BIN_NAME="pb" # ── 检测平台 ── detect_platform() { OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) case "$OS" in linux) OS="unknown-linux-gnu" ;; darwin) OS="apple-darwin" ;; *) echo "不支持的系统: $OS"; exit 1 ;; esac case "$ARCH" in x86_64|amd64) ARCH="x86_64" ;; aarch64|arm64) ARCH="aarch64" ;; *) echo "不支持的架构: $ARCH"; exit 1 ;; esac PLATFORM="${ARCH}-${OS}" } # ── 选择安装目录 ── detect_install_dir() { if [ -w /usr/local/bin ]; then INSTALL_DIR="/usr/local/bin" elif [ -d "$HOME/.local/bin" ]; then INSTALL_DIR="$HOME/.local/bin" else mkdir -p "$HOME/.local/bin" INSTALL_DIR="$HOME/.local/bin" fi } # ── 下载工具 ── download() { if command -v curl >/dev/null 2>&1; then curl -fsSL "$1" -o "$2" elif command -v wget >/dev/null 2>&1; then wget -qO "$2" "$1" else echo "需要 curl 或 wget" exit 1 fi } main() { echo "" echo " PhoneBase CLI Installer" echo " ───────────────────────" echo "" detect_platform detect_install_dir # 获取最新版本 VERSION=$(download "${REPO}/version" - 2>/dev/null || echo "") if [ -z "$VERSION" ]; then echo " 获取版本信息失败" exit 1 fi echo " 版本: $VERSION" echo " 平台: $PLATFORM" echo " 安装到: $INSTALL_DIR" echo "" # 下载二进制 URL="${REPO}/download/${VERSION}/${BIN_NAME}-${PLATFORM}" TMP=$(mktemp) echo " 下载中..." download "$URL" "$TMP" # 安装 chmod +x "$TMP" mv "$TMP" "${INSTALL_DIR}/${BIN_NAME}" echo " ✓ 安装完成: ${INSTALL_DIR}/${BIN_NAME}" echo "" # 检查 PATH if ! echo "$PATH" | tr ':' '\n' | grep -qx "$INSTALL_DIR"; then echo " ⚠ 请将 $INSTALL_DIR 加入 PATH:" echo "" echo " export PATH=\"${INSTALL_DIR}:\$PATH\"" echo "" echo " 添加到 ~/.bashrc 或 ~/.zshrc 使其永久生效。" echo "" fi echo " 开始使用:" echo "" echo " pb login # 浏览器登录" echo " pb apikey # 或设置 API Key" echo " pb devices # 查看设备" echo "" } main