#!/bin/bash # Install shell completions for myclaude to user directory only # Usage: install_completion.sh VENV_MYCLAUDE="$1" COMP_DIR="$2" if [[ -z "$VENV_MYCLAUDE" || -z "$COMP_DIR" ]]; then echo "Usage: $0 " >&2 exit 1 fi USER_SHELL=$(basename "$SHELL") install_zsh_completion() { mkdir -p "$COMP_DIR" 2>/dev/null || { echo "Error: cannot create $COMP_DIR" >&2; return 1; } if _MYCLAUDE_COMPLETE=zsh_source "$VENV_MYCLAUDE" > "$COMP_DIR/_myclaude" 2>/dev/null; then echo "Installed zsh completion: $COMP_DIR/_myclaude" return 0 else echo "Warning: failed to generate zsh completion" >&2 return 1 fi } install_bash_completion() { mkdir -p "$COMP_DIR" 2>/dev/null || { echo "Error: cannot create $COMP_DIR" >&2; return 1; } if _MYCLAUDE_COMPLETE=bash_source "$VENV_MYCLAUDE" > "$COMP_DIR/myclaude.bash" 2>/dev/null; then echo "Installed bash completion: $COMP_DIR/myclaude.bash" return 0 else echo "Warning: failed to generate bash completion" >&2 return 1 fi } if [[ "$USER_SHELL" == "zsh" ]]; then install_zsh_completion elif [[ "$USER_SHELL" == "bash" ]]; then install_bash_completion fi