my Python program can be launched with a range of different options (or subcommands) like:
$ myProgram doSomething
$ myProgram doSomethingElse
$ myProgram nowDoSomethingDifferent
I want it to use auto-completion with so that if i type "myProgram d" it returns "myProgram doSomething" and if i type "myProgram n" it renders "myProgram nowDoSomethingDifferent". This is similar to the average use of the module rlcompleter, but it does not pick possible completion options from the filesystem (or from history) but from a custom set of strings (that correspond to the available options for my program)
Any idea on how to implement this?
I'm aware of the variable PYTHONSTARTUP (that should point to a file I don't know how to write).
As a working example, django-admin (from the django package) has the same exact feature i'm looking for
Create a file "myprog-completion.bash" and source it in your .bashrc file. Something like this to get you started...
_myProgram()
{
cur=${COMP_WORDS[COMP_CWORD]}
case "${cur}" in
d*) use="doSomething" ;;
n*) use="nowDoSomethingElse" ;;
esac
COMPREPLY=( $( compgen -W "$use" -- $cur ) )
}
complete -o default -o nospace -F _myProgram myProgram