Add AWS CLI autocomplete support for bash, zsh, and fish shells

This commit is contained in:
Austen Bruhn 2025-11-15 17:50:21 -07:00
parent 75fd523215
commit 3393a04272
2 changed files with 47 additions and 1 deletions

View File

@ -8,7 +8,7 @@ tags: [helper, aws, cli]
# AWS CLI
Automatically install the [AWS CLI v2](https://aws.amazon.com/cli/) in your Coder workspace.
Automatically install the [AWS CLI v2](https://aws.amazon.com/cli/) in your Coder workspace with command autocomplete support for bash, zsh, and fish shells.
```tf
module "aws-cli" {
@ -19,6 +19,13 @@ module "aws-cli" {
}
```
## Features
- Installs AWS CLI v2 for Linux and macOS
- Supports x86_64 and ARM64 architectures
- Optional version pinning
- **Auto-configures command autocomplete** for bash, zsh, and fish shells
## Examples
### Basic Installation

View File

@ -66,3 +66,42 @@ else
printf "❌ AWS CLI installation failed. Check logs at ${LOG_PATH}\n"
exit 1
fi
# Configure autocomplete for common shells
if command -v aws_completer > /dev/null 2>&1; then
AWS_COMPLETER_PATH=$(which aws_completer)
# Bash autocomplete
if [ -f ~/.bashrc ]; then
if ! grep -q "aws_completer.*aws" ~/.bashrc; then
echo "complete -C '$AWS_COMPLETER_PATH' aws" >> ~/.bashrc
printf "✓ Configured AWS CLI autocomplete for bash\n"
fi
fi
# Zsh autocomplete
if [ -f ~/.zshrc ] || [ -d ~/.oh-my-zsh ]; then
if ! grep -q "aws_completer.*aws" ~/.zshrc 2> /dev/null; then
cat >> ~/.zshrc << EOF
# AWS CLI autocomplete
autoload bashcompinit && bashcompinit
autoload -Uz compinit && compinit
complete -C '$AWS_COMPLETER_PATH' aws
EOF
printf "✓ Configured AWS CLI autocomplete for zsh\n"
fi
fi
# Fish autocomplete
if [ -d ~/.config/fish ] || command -v fish > /dev/null 2>&1; then
mkdir -p ~/.config/fish/completions
FISH_COMPLETION=~/.config/fish/completions/aws.fish
if [ ! -f "$FISH_COMPLETION" ]; then
cat > "$FISH_COMPLETION" << 'EOF'
complete --command aws --no-files --arguments '(begin; set --local --export COMP_SHELL fish; set --local --export COMP_LINE (commandline); aws_completer | sed '"'"'s/ $//'"'"'; end)'
EOF
printf "✓ Configured AWS CLI autocomplete for fish\n"
fi
fi
fi