Files
ccs/scripts/completion/ccs.bash
T
Tam Nhu Tran 24ba2abe10 feat(cli): refresh help and shell completion UX
- add a shared command catalog for root help and completion routing

- replace shell-local completion logic with a hidden __complete backend

- add topic help and parity tests for router, help, and completion coverage
2026-04-03 00:53:10 -04:00

43 lines
1.1 KiB
Bash

# Bash completion for CCS (Claude Code Switch)
# Compatible with bash 3.2+
_ccs_completion() {
local cur
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
local tokens_before_current=()
if [[ ${COMP_CWORD} -gt 1 ]]; then
tokens_before_current=("${COMP_WORDS[@]:1:COMP_CWORD-1}")
fi
while IFS= read -r line; do
[[ -n "${line}" ]] && COMPREPLY+=("${line}")
done < <(__ccs_completion_run "${cur}" "${tokens_before_current[@]}")
return 0
}
__ccs_completion_run() {
local current="$1"
shift || true
local script_dir repo_root repo_cli
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
repo_root="$(cd "${script_dir}/../.." && pwd)"
repo_cli="${repo_root}/dist/ccs.js"
if [[ ! -f "${repo_cli}" ]]; then
repo_cli="${repo_root}/bin/ccs.js"
fi
if [[ -f "${repo_cli}" ]]; then
node "${repo_cli}" __complete --shell bash --current "${current}" -- "$@" 2>/dev/null
return 0
fi
if command -v ccs >/dev/null 2>&1; then
ccs __complete --shell bash --current "${current}" -- "$@" 2>/dev/null
fi
}
complete -F _ccs_completion ccs