flake-update-20260505
 1#!/bin/bash
 2# Gets completions using bash's native completion system
 3# Usage: bash-complete.bash "command line" "/path/to/cwd"
 4
 5__cmdline="$1"
 6__cwd="$2"
 7
 8cd "$__cwd" 2>/dev/null || exit 1
 9
10# Extract command name
11__cmd=${__cmdline%% *}
12
13# Source bash-completion framework if available
14for f in /usr/share/bash-completion/bash_completion /etc/bash_completion /opt/homebrew/etc/bash_completion /opt/homebrew/share/bash-completion/bash_completion; do
15    # shellcheck disable=SC1090
16    [[ -f "$f" ]] && { source "$f" 2>/dev/null; break; }
17done
18
19# Also try to source command-specific completions directly (macOS/Homebrew)
20for dir in /opt/homebrew/etc/bash_completion.d /usr/share/bash-completion/completions /etc/bash_completion.d; do
21    for f in "$dir/$__cmd" "$dir/$__cmd.bash" "$dir/${__cmd}-completion.bash"; do
22        # shellcheck disable=SC1090
23        [[ -f "$f" ]] && source "$f" 2>/dev/null
24    done
25done
26
27# Set up completion environment
28COMP_LINE="$__cmdline"
29COMP_POINT=${#COMP_LINE}
30eval set -- "$COMP_LINE"
31COMP_WORDS=("$@")
32
33# Add empty word if line ends with space (completing new word)
34[[ "${COMP_LINE: -1}" = ' ' ]] && COMP_WORDS+=('')
35
36COMP_CWORD=$(( ${#COMP_WORDS[@]} - 1 ))
37
38# Load completion for the command if available
39declare -F _completion_loader &>/dev/null && _completion_loader "$__cmd" 2>/dev/null
40
41# Get the completion function
42completion=$(complete -p "$__cmd" 2>/dev/null | awk '{print $(NF-1)}')
43
44if [[ -n "$completion" ]] && declare -F "$completion" &>/dev/null; then
45    # Call the completion function
46    "$completion" 2>/dev/null
47    # Output unique results
48    printf '%s\n' "${COMPREPLY[@]}" | sort -u | head -30
49fi