Files
ai-setup/scripts/android-cli-setup.sh
Виталий Никитенко c74a435d89 feat(android): install Android CLI only on demand (setup.sh item 8)
ai-setup.sh no longer installs Google Android CLI or runs android init,
so menu items 1 and 7 (setup / update) leave it alone. The install
block moved verbatim into scripts/android-cli-setup.sh, which menu item
8 now runs instead of the whole ai-setup.sh.

The final summary of ai-setup.sh points to item 8, README describes the
opt-in install, tests check the new script and that ai-setup.sh does
not install Android CLI any more.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 11:49:53 +07:00

73 lines
3.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Copyright (c) 2026 Виталий Никитенко. MIT License.
# android-cli-setup.sh — установка Google Android CLI (по выбору, пункт 8 в setup.sh)
# Запуск: bash scripts/android-cli-setup.sh
# Автоопределение: ~/bin если есть в PATH, иначе ~/.local/bin
if [[ ":$PATH:" == *":$HOME/bin:"* ]]; then
BIN_DIR="$HOME/bin"
else
BIN_DIR="$HOME/.local/bin"
fi
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; NC='\033[0m'
info() { echo -e "${CYAN}[INFO]${NC} $*"; }
success() { echo -e "${GREEN}[OK]${NC} $*"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
# Запрет запуска от root
if [ "$EUID" -eq 0 ]; then
echo -e "${RED}Не запускайте этот скрипт через sudo!${NC}"
echo "Запустите просто: bash scripts/android-cli-setup.sh"
exit 1
fi
info "Проверяю Android CLI..."
ANDROID_BIN="$HOME/.local/bin/android"
[ ! -f "$ANDROID_BIN" ] && ANDROID_BIN="$(command -v android 2>/dev/null || true)"
if [ -z "$ANDROID_BIN" ] || [ ! -f "$ANDROID_BIN" ]; then
info "Устанавливаю Android CLI..."
_uname_s=$(uname -s)
_uname_m=$(uname -m)
ANDROID_PLATFORM=""
case "${_uname_s}-${_uname_m}" in
Linux-x86_64) ANDROID_PLATFORM="linux_x86_64" ;;
Linux-aarch64) ANDROID_PLATFORM="linux_arm64" ;;
Linux-arm64) ANDROID_PLATFORM="linux_arm64" ;;
Darwin-x86_64) ANDROID_PLATFORM="darwin_x86_64" ;;
Darwin-arm64) ANDROID_PLATFORM="darwin_arm64" ;;
Darwin-aarch64) ANDROID_PLATFORM="darwin_arm64" ;;
MINGW*|MSYS*|CYGWIN*-x86_64) ANDROID_PLATFORM="windows_x86_64" ;;
esac
if [ -n "$ANDROID_PLATFORM" ]; then
ANDROID_INSTALL_URL="https://dl.google.com/android/cli/latest/${ANDROID_PLATFORM}/install.sh"
if curl -fsSL "$ANDROID_INSTALL_URL" | bash; then
success "Android CLI установлен"
else
warn "Не удалось установить Android CLI через официальный скрипт"
fi
else
warn "Неизвестная платформа ${_uname_s} ${_uname_m}. Пропускаю Android CLI."
fi
else
success "Android CLI уже установлен: $($ANDROID_BIN --version 2>/dev/null | head -1)"
fi
# Официальный install.sh ставит бинарь в ~/.local/bin/android.
# Если пользователь использует ~/bin вместо ~/.local/bin - symlink.
if [ "$BIN_DIR" != "$HOME/.local/bin" ] && [ -f "$HOME/.local/bin/android" ] && [ ! -f "$BIN_DIR/android" ]; then
ln -sf "$HOME/.local/bin/android" "$BIN_DIR/android"
success "Android CLI symlink -> $BIN_DIR/android"
fi
# Разворачиваем Android CLI skills для агентов (Claude Code и др.)
if command -v android &>/dev/null; then
info "Запускаю android init для деплоя skills..."
mkdir -p "$HOME/.claude/skills"
android init || warn "android init завершился с ошибкой"
else
info "Android CLI не найден в PATH, пропускаю android init"
fi