Ticket #1240: django

File django, 3.2 KB (added by paolo <paolo@…>, 19 years ago)
Line 
1# #########################################################################
2# This bash script adds tab-completion feature to django-admin.py and
3# manage.py.
4#
5# Installation.
6#
7# Create a directory named .bash_completion in your home directory and move
8# this file there. Now, if in your home exists a file called .profile use this
9# one, otherwise use .bash_profile and add this line:
10#
11# source ~/.bash_completion/django
12#
13# Do the same in ~/.bashrc. Usually this shouldn't be necessary as
14# .profile or .bash_profile take care to invoke .bashrc, if it exists, but
15# different distributions handle this aspect differently.
16#
17# Settings will become effective since next login.
18#
19# Currently it is not supported models completion.
20#
21# Please, feedbacks or suggestions (expecially about models completion!) at
22# paolo@php3.it or at paolo on freenode or at http://code.djangoproject.com/ticket/1240.
23# Thanks.
24
25_django_completion()
26{
27 local cur prev opts actions action_shell_opts
28 COMPREPLY=()
29 cur="${COMP_WORDS[COMP_CWORD]}"
30 prev="${COMP_WORDS[COMP_CWORD-1]}"
31
32 # Standalone options.
33 opts="--help --settings --pythonpath"
34 # Actions.
35 actions="adminindex createcachetable createsuperuser \
36 init inspectdb install installperms runserver \
37 shell sql sqlall sqlclear sqlindexes sqlinitialdata \
38 sqlreset sqlsequencereset startapp startproject \
39 validate"
40 # Action's options.
41 action_shell_opts="--plain"
42
43 if [[ # django-admin.py, ./manage, manage.py
44 ( ${COMP_CWORD} -eq 1 &&
45 ( ${COMP_WORDS[0]} == django-admin.py ||
46 ${COMP_WORDS[0]} == ./manage.py ||
47 ${COMP_WORDS[0]} == manage.py ) )
48 ||
49 # python manage.py, /some/path/python manage.py (if manage.py exists)
50 ( ${COMP_CWORD} -eq 2 &&
51 ( $( basename ${COMP_WORDS[0]} ) == python ) &&
52 ( $( basename ${COMP_WORDS[1]} ) == manage.py) &&
53 ( -r ${COMP_WORDS[1]} ) ) ]] ; then
54
55 case ${cur} in
56 -*)
57 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
58 return 0
59 ;;
60 *)
61 COMPREPLY=( $(compgen -W "${actions}" -- ${cur}) )
62 return 0
63 ;;
64 esac
65 else
66 case ${prev} in
67 adminindex|install|installperms| \
68 sql|sqlall|sqlclear|sqlindexes| \
69 sqlinitialdata|sqlreset|sqlsequencereset)
70 # Actually modelmodules completion is not supported.
71 # COMPREPLY=( $(compgen -W "auth core" -- ${cur}) )
72 COMPREPLY=()
73 return 0
74 ;;
75
76 createcachetable|createsuperuser|init| \
77 inspectdb|runserver|startapp|startproject| \
78 validate)
79 COMPREPLY=()
80 return 0
81 ;;
82 shell)
83 COMPREPLY=( $(compgen -W "$action_shell_opts" -- ${cur}) )
84 return 0
85 ;;
86 *)
87 #COMPREPLY=( $(compgen -W "auth core" -- ${cur}) )
88 COMPREPLY=()
89 return 0
90 ;;
91 esac
92 fi
93}
94
95complete -F _django_completion django-admin.py manage.py
96complete -F _django_completion -o default python
Back to Top