diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2007-02-25 16:33:39 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2007-02-25 16:33:39 +0000 |
| commit | 0a2155e5b3bf44f44b1a274a269c07af0bd58f33 (patch) | |
| tree | 5e8961566c4b5dbe040d791d5c3f97c7c3b27c92 /extras/django_bash_completion | |
| parent | 3468fd01a9a66193aed61f4ddbab09a473d45d17 (diff) | |
Added completetion support for app names to django_base_completion, which closes #1240. Thanks for the patch, Rob Hudson
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4575 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'extras/django_bash_completion')
| -rw-r--r-- | extras/django_bash_completion | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/extras/django_bash_completion b/extras/django_bash_completion index 829756c371..79efc5b3b1 100644 --- a/extras/django_bash_completion +++ b/extras/django_bash_completion @@ -79,10 +79,28 @@ _django_completion() adminindex|install|reset| \ sql|sqlall|sqlclear|sqlindexes| \ sqlinitialdata|sqlreset|sqlsequencereset) - # App completion isn't yet implemented, but here's where that - # would go. - # COMPREPLY=( $(compgen -W "auth core" -- ${cur}) ) - COMPREPLY=() + # App completion + settings="" + # If settings.py in the PWD, use that + if [ -e settings.py ] ; then + settings="$PWD/settings.py" + else + # Use the ENV variable if it is set + if [ $DJANGO_SETTINGS_MODULE ] ; then + settings=$DJANGO_SETTINGS_MODULE + fi + fi + # Couldn't find settings so return nothing + if [ -z $settings ] ; then + COMPREPLY=() + # Otherwise inspect settings.py file + else + apps=`sed -n "/INSTALLED_APPS = (/,/)/p" $settings | \ + grep -v "django.contrib" | + sed -n "s/^[ ]*'\(.*\.\)*\(.*\)'.*$/\2 /pg" | \ + tr -d "\n"` + COMPREPLY=( $(compgen -W "${apps}" -- ${cur}) ) + fi return 0 ;; |
