63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Bash completion script for backlog CLI
|
|
#
|
|
# NOTE: This script is embedded in the backlog binary and installed automatically
|
|
# via 'backlog completion install'. This file serves as reference documentation.
|
|
#
|
|
# Installation:
|
|
# - Recommended: backlog completion install --shell bash
|
|
# - Manual: Copy to /etc/bash_completion.d/backlog
|
|
# - Or source directly in ~/.bashrc: source /path/to/backlog.bash
|
|
#
|
|
# Requirements:
|
|
# - Bash 4.x or 5.x
|
|
# - bash-completion package (optional but recommended)
|
|
|
|
# Main completion function for backlog CLI
|
|
_backlog() {
|
|
# Initialize completion variables using bash-completion helper if available
|
|
# Falls back to manual initialization if bash-completion is not installed
|
|
local cur prev words cword
|
|
if declare -F _init_completion >/dev/null 2>&1; then
|
|
_init_completion || return
|
|
else
|
|
# Manual initialization fallback
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
words=("${COMP_WORDS[@]}")
|
|
cword=$COMP_CWORD
|
|
fi
|
|
|
|
# Get the full command line and cursor position
|
|
local line="${COMP_LINE}"
|
|
local point="${COMP_POINT}"
|
|
|
|
# Call the CLI's internal completion command
|
|
# This delegates all completion logic to the TypeScript implementation
|
|
# Output format: one completion per line
|
|
local completions
|
|
completions=$(backlog completion __complete "$line" "$point" 2>/dev/null)
|
|
|
|
# Check if the completion command failed
|
|
if [[ $? -ne 0 ]]; then
|
|
# Silent failure - completion should never break the shell
|
|
return 0
|
|
fi
|
|
|
|
# Generate completion replies using compgen
|
|
# -W: wordlist - splits completions by whitespace
|
|
# --: end of options
|
|
# "$cur": current word being completed
|
|
COMPREPLY=( $(compgen -W "$completions" -- "$cur") )
|
|
|
|
# Return success
|
|
return 0
|
|
}
|
|
|
|
# Register the completion function for the 'backlog' command
|
|
# -F: use function for completion
|
|
# _backlog: name of the completion function
|
|
# backlog: command to complete
|
|
complete -F _backlog backlog
|