#!/usr/bin/env bash # shellcheck disable=SC2086 # OpenCode 네이티브 설치 스크립트 # # macOS, Linux 환경에서 curl을 사용하여 공식 설치 스크립트를 다운로드하고 bash로 실행합니다. # 공식 웹사이트: https://opencode.ai # 공식 GitHub: https://github.com/anomalyco/opencode set -euo pipefail # ──────────────────────────────────────────── # 유틸리티 함수 (모두 stderr 출력) # ──────────────────────────────────────────── info() { echo "[INFO] $*" >&2; } warn() { echo "[WARN] $*" >&2; } error() { echo "[ERROR] $*" >&2; exit 1; } success() { echo "[OK] $*" >&2; } # ──────────────────────────────────────────── # 필수 명령어 확인 # ──────────────────────────────────────────── for cmd in curl bash; do if ! command -v "$cmd" &>/dev/null; then error "'$cmd' 명령어가 필요합니다. 먼저 설치해 주세요." fi done # ──────────────────────────────────────────── # 메인 설치 로직 # ──────────────────────────────────────────── main() { info "OpenCode (오픈소스 AI 코딩 에이전트) 설치를 시작합니다..." info "공식 설치 스크립트 실행 중: curl -fsSL https://opencode.ai/install | bash" # 공식 스크립트 실행 if curl -fsSL https://opencode.ai/install | bash; then success "OpenCode 설치가 성공적으로 완료되었습니다!" # ~/.local/bin 경로가 존재하고 ~/.opencode/bin/opencode가 있는 경우 심볼릭 링크 연결 local opencode_bin="$HOME/.opencode/bin/opencode" local local_bin="$HOME/.local/bin" if [ -x "$opencode_bin" ] && [ -d "$local_bin" ]; then ln -sf "$opencode_bin" "$local_bin/opencode" 2>/dev/null || true info "$local_bin/opencode 에 심볼릭 링크를 구성했습니다." fi info "새로운 터미널 창을 열거나 환경 변수를 반영한 뒤 아래 명령어를 통해 실행하세요:" info " opencode # 대화형 코딩 TUI 세션 시작" info " opencode auth login # AI 모델 프로바이더 인증 설정" info " opencode --help # 도움말 및 사용법 확인" else error "OpenCode 공식 설치 스크립트 실행 중 에러가 발생했습니다." fi } main "$@"