Bash_completion
The Ruby gem completely makes it simple to create bash completion scripts.
Suppose we have the executable kaka.
Arguments syntax is: kaka [--verbose] [--dir <directory>] <file>
First create completely.yaml
kaka:
- --verbose
- --dir
- <file>
kaka*--dir:
- <directory>
Then run completely generate
This creates completely.bash
Now you can source it..
source completely.bash
..or move it to your bash_completion directory (path might vary).
mv completely.bash ~/.local/share/bash-completion/completions/kaka.bash
Now you can tab-complete your command.
UPDATE:
not sure if<file>(or<directory>) can use globbing.
so I use$(compgen -f -G '*.zip')or$(compgen -d -G '[A-Z]*')