Skip to content

Commit

Permalink
Fixed django#12174 -- Corrected Bash command line completion when cal…
Browse files Browse the repository at this point in the history
…ling "python manage.py". Thanks to sethp for the report, and SmileyChris for the initial patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12386 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
freakboy3742 committed Feb 5, 2010
1 parent 8600ad4 commit 1743529
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion extras/django_bash_completion
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,36 @@ _django_completion()
COMP_CWORD=$COMP_CWORD \
DJANGO_AUTO_COMPLETE=1 $1 ) )
}
complete -F _django_completion -o default django-admin.py manage.py
complete -F _django_completion -o default django-admin.py manage.py django-admin

_python_django_completion()
{
if [[ ${COMP_CWORD} -ge 2 ]]; then
PYTHON_EXE=$( basename -- ${COMP_WORDS[0]} )
echo $PYTHON_EXE | egrep "python([2-9]\.[0-9])?" >/dev/null 2>&1
if [[ $? == 0 ]]; then
PYTHON_SCRIPT=$( basename -- ${COMP_WORDS[1]} )
echo $PYTHON_SCRIPT | egrep "manage\.py|django-admin(\.py)?" >/dev/null 2>&1
if [[ $? == 0 ]]; then
COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]:1}" \
COMP_CWORD=$(( COMP_CWORD-1 )) \
DJANGO_AUTO_COMPLETE=1 ${COMP_WORDS[*]} ) )
fi
fi
fi
}

# Support for multiple interpreters.
unset pythons
if command -v whereis &>/dev/null; then
python_interpreters=$(whereis python | cut -d " " -f 2-)
for python in $python_interpreters; do
pythons="${pythons} $(basename -- $python)"
done
pythons=$(echo $pythons | tr " " "\n" | sort -u | tr "\n" " ")
else
pythons=python
fi

complete -F _python_django_completion -o default $pythons

0 comments on commit 1743529

Please sign in to comment.