55 lines
2.3 KiB
Bash
55 lines
2.3 KiB
Bash
#!/usr/bin/env bash
|
|||
|
|
# shellcheck disable=SC2086
|
||
|
|
|
||
|
|
# tmux의 현대적이고 빠른 Rust 기반 대안인 rmux를 설치합니다.
|
||
|
|
# rmux: https://rmux.io
|
||
|
|
#
|
||
|
|
# 지원 플랫폼:
|
||
|
|
# macOS & Linux
|
||
|
|
|
||
|
|
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 sh; do
|
||
|
|
command -v "$cmd" &>/dev/null || error "'$cmd' 명령어가 필요합니다. 먼저 설치해 주세요."
|
||
|
|
done
|
||
|
|
|
||
|
|
# ────────────────────────────────────────────
|
||
|
|
# 메인 설치 로직
|
||
|
|
# ────────────────────────────────────────────
|
||
|
|
main() {
|
||
|
|
info "rmux (tmux alternative in Rust) 설치를 시작합니다..."
|
||
|
|
|
||
|
|
if command -v rmux &>/dev/null; then
|
||
|
|
local current_ver
|
||
|
|
current_ver="$(rmux --version 2>/dev/null || echo 'unknown')"
|
||
|
|
info "rmux가 이미 설치되어 있습니다 ($current_ver). 설치를 건너뜁니다."
|
||
|
|
else
|
||
|
|
info "공식 스크립트를 통해 rmux를 설치하는 중..."
|
||
|
|
if curl -fsSL https://rmux.io/install.sh | sh; then
|
||
|
|
success "rmux 설치가 성공적으로 완료되었습니다!"
|
||
|
|
else
|
||
|
|
error "rmux 설치 스크립트 실행 중 오류가 발생했습니다."
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 설치 완료 검증
|
||
|
|
if command -v rmux &>/dev/null; then
|
||
|
|
success "rmux를 사용할 수 있습니다: $(command -v rmux)"
|
||
|
|
info "실행 명령어: rmux"
|
||
|
|
else
|
||
|
|
warn "rmux가 PATH에서 검색되지 않습니다. 터미널을 다시 열거나 환경 변수를 확인해 주세요."
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
main "$@"
|