|
@@ -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
|
|
|
;;
|
|
|
|