feat: add shared shell utilities
- Add common aliases, exports, and functions - Add shell completions and prompt configuration - Add sync utilities for cross-shell compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
83
shared/completions
Normal file
83
shared/completions
Normal file
@@ -0,0 +1,83 @@
|
||||
# Shared Completion Functions
|
||||
# Compatible with both bash and zsh
|
||||
|
||||
# Custom completion for 'ta' command
|
||||
_ta_complete() {
|
||||
local cur prev actions layers tf_cmds ansible_cmds
|
||||
|
||||
# Get current word and previous word based on shell
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
# Zsh completion
|
||||
cur="${words[CURRENT]}"
|
||||
prev="${words[CURRENT-1]}"
|
||||
local comp_word=$CURRENT
|
||||
else
|
||||
# Bash completion
|
||||
local cur prev
|
||||
_get_comp_words_by_ref cur prev
|
||||
local comp_word=$COMP_CWORD
|
||||
fi
|
||||
|
||||
actions="terraform ansible install remove"
|
||||
layers="foundation showcase"
|
||||
tf_cmds="init plan apply refresh destroy"
|
||||
ansible_cmds="" # Add Ansible-specific commands here if needed
|
||||
|
||||
case $comp_word in
|
||||
1)
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
compadd $actions
|
||||
else
|
||||
COMPREPLY=( $(compgen -W "$actions" -- "$cur") )
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
if [[ "$prev" == "terraform" || "$prev" == "ansible" ]]; then
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
compadd $layers
|
||||
else
|
||||
COMPREPLY=( $(compgen -W "$layers" -- "$cur") )
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
3)
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
local first_word="${words[2]}"
|
||||
else
|
||||
local first_word="${COMP_WORDS[1]}"
|
||||
fi
|
||||
|
||||
if [[ "$first_word" == "terraform" ]]; then
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
compadd $tf_cmds
|
||||
else
|
||||
COMPREPLY=( $(compgen -W "$tf_cmds" -- "$cur") )
|
||||
fi
|
||||
elif [[ "$first_word" == "ansible" ]]; then
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
compadd $ansible_cmds
|
||||
else
|
||||
COMPREPLY=( $(compgen -W "$ansible_cmds" -- "$cur") )
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Fallback to file completions
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
_files
|
||||
else
|
||||
COMPREPLY=( $(compgen -f -- "$cur") )
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
|
||||
# Register completion based on shell
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
# Zsh completion registration
|
||||
compdef _ta_complete ta
|
||||
else
|
||||
# Bash completion registration
|
||||
complete -F _ta_complete ta
|
||||
fi
|
||||
Reference in New Issue
Block a user