mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 22:11:54 +02:00
25764: completion for Django, from Chris Lamb.
This commit is contained in:
parent
e6dec182d0
commit
bf59efddfa
3 changed files with 206 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-09-28 Clint Adams <clint@zsh.org>
|
||||
|
||||
* 25764: Completion/Unix/Command/.distfiles,
|
||||
Completion/Unix/Command/_django: completion for Django, from Chris
|
||||
Lamb.
|
||||
|
||||
2008-09-28 Peter Stephenson <p.w.stephenson@ntlworld.com>
|
||||
|
||||
* Mikael Magnusson: Src/utils.c: newline in getquery() is
|
||||
|
|
|
@ -42,6 +42,7 @@ _dhclient
|
|||
_dict
|
||||
_diff
|
||||
_diffstat
|
||||
_django
|
||||
_dmidecode
|
||||
_du
|
||||
_dvi
|
||||
|
|
199
Completion/Unix/Command/_django
Normal file
199
Completion/Unix/Command/_django
Normal file
|
@ -0,0 +1,199 @@
|
|||
#compdef django-admin.py django-admin manage.py
|
||||
|
||||
local ret=1 state
|
||||
|
||||
if [ "$service" = "manage.py" ] && [ ! -x ./manage.py ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
declare -ga common_args
|
||||
common_args=(
|
||||
'--help[display help information]'
|
||||
'--version[display version information]'
|
||||
'--pythonpath=[directory to add to the Python path]:directory:_directories'
|
||||
'--settings=[Python path to settings module]:settings'
|
||||
'--traceback[print traceback on exception]'
|
||||
)
|
||||
|
||||
_directories () {
|
||||
_wanted directories expl directory _path_files -/ "$@" -
|
||||
}
|
||||
|
||||
typeset -A opt_args
|
||||
_arguments \
|
||||
$common_args \
|
||||
':subcommand:->subcommand' \
|
||||
'*::options:->options' && ret=0
|
||||
|
||||
case $state in
|
||||
subcommand)
|
||||
subcommands=(
|
||||
"cleanup:remove old data from the database"
|
||||
"compilemessages:compile .po files to .mo for use with gettext"
|
||||
"createcachetable:creates table for SQL cache backend"
|
||||
"createsuperuser:create a superuser"
|
||||
"dbshell:run command-line client for the current database"
|
||||
"diffsettings:display differences between the current settings and Django defaults"
|
||||
"dumpdata:output contents of database as a fixture"
|
||||
"flush:execute 'sqlflush' on the current database"
|
||||
"inspectdb:output Django model module for tables in database"
|
||||
"loaddata:install the named fixture(s) in the database"
|
||||
"makemessages:pull out all strings marked for translation"
|
||||
"reset:executes 'sqlreset' for the given app(s)"
|
||||
"runfcgi:run this project as a fastcgi"
|
||||
"runserver:start a lightweight web server for development"
|
||||
"shell:run a Python interactive interpreter. Tries to use IPython, if it's available"
|
||||
"sql:print the CREATE TABLE statements for the given app(s)"
|
||||
"sqlall:print the CREATE TABLE, CREATE INDEX and custom statements for the given app(s)"
|
||||
"sqlclear:print the DROP TABLE statements for the given app(s)"
|
||||
"sqlcustom:print the custom table-modifying SQL statements for the given app(s)"
|
||||
"sqlflush:print the SQL statements required to return all tables to installation state"
|
||||
"sqlindexes:print the CREATE INDEX statements for the given app(s)"
|
||||
"sqlreset:print the DROP TABLE and CREATE TABLE statements for the given app(s)"
|
||||
"sqlsequencereset:print the SQL statements for resetting sequences for the given app(s)"
|
||||
"startapp:create Django app directory in this project's directory"
|
||||
"syncdb:create database tables for apps in INSTALLED_APPS where required"
|
||||
"test:run the test suite for the specified app, or the entire site"
|
||||
"testserver:run a development server with data from the given fixture(s)"
|
||||
"validate:validate all installed modules"
|
||||
)
|
||||
|
||||
_describe -t subcommands 'django admin subcommand' subcommands && ret=0
|
||||
;;
|
||||
|
||||
options)
|
||||
declare -a args
|
||||
args=(
|
||||
$common_args
|
||||
)
|
||||
|
||||
declare -a verbosity
|
||||
verbosity=(
|
||||
'--verbosity=:verbosity:(0 1 2):[verbosity level; 0=minimal, 1=normal, 2=all]'
|
||||
)
|
||||
|
||||
declare -a locale
|
||||
locale=(
|
||||
{-l,--locale=}'[locale to process (default: all)]:locale'
|
||||
)
|
||||
|
||||
declare -a noinput
|
||||
noinput=(
|
||||
'--noinput[do not prompt for any input]'
|
||||
)
|
||||
|
||||
port_opts={,0.0.0.0\\:,127.0.0.1\\:}800{0,1}
|
||||
|
||||
_appname () {
|
||||
local settings=""
|
||||
if [ -e settings.py ]; then
|
||||
settings="settings.py"
|
||||
elif [ -n "${DJANGO_SETTINGS_MODULE}" ]; then
|
||||
settings="${DJANGO_SETTINGS_MODULE}"
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
|
||||
_wanted appname expl appname compadd - $(command \
|
||||
sed -n "/INSTALLED_APPS\s*=\s*(/,/)/p" ${settings} | \
|
||||
sed -n "s/^\s*'\(.*\.\)*\(.*\)'.*$/\2 /pg")
|
||||
}
|
||||
|
||||
case $words[1] in
|
||||
compilemessages)
|
||||
args+=$locale
|
||||
;;
|
||||
|
||||
createcachetable)
|
||||
args+=':tablename:'
|
||||
;;
|
||||
|
||||
createsuperuser)
|
||||
args+=(
|
||||
$noinput
|
||||
'--username[username for the superuser]:username'
|
||||
'--email[email address for the superuser]:email'
|
||||
)
|
||||
;;
|
||||
|
||||
dumpdata)
|
||||
args+=(
|
||||
'--format=:format:(xml python json yaml):[serialization format for the fixtures]'
|
||||
'--indent=[indent level to use when pretty-printing]:indent'
|
||||
{-e,--exclude=}'[app to exclude]:exclude:_appname'
|
||||
)
|
||||
;;
|
||||
|
||||
flush)
|
||||
args+=$verbosity
|
||||
;;
|
||||
|
||||
loaddata)
|
||||
args+=(
|
||||
$verbosity
|
||||
'*:fixture:'
|
||||
)
|
||||
;;
|
||||
|
||||
makemessages)
|
||||
args+=(
|
||||
$locale
|
||||
$verbosity
|
||||
{-d,--domain=}'[domain of the message files (default: "django")]:domain'
|
||||
{-a,--all}'[re-examine all code and templates]'
|
||||
{-e,--extensions=}'[file extension(s) to examine (default: ".html")]:extension'
|
||||
)
|
||||
;;
|
||||
|
||||
runserver)
|
||||
args+=(
|
||||
'--noreload[do not use auto-reloader]'
|
||||
'--adminmedia=[directory from which to serve admin media]:directory:_directories'
|
||||
':port:('$port_opts')'
|
||||
)
|
||||
;;
|
||||
|
||||
shell)
|
||||
args+='--plain[use plain Python, not IPython]'
|
||||
;;
|
||||
|
||||
reset|sql*)
|
||||
args+='*:appname:_appname'
|
||||
;;
|
||||
|
||||
startapp)
|
||||
args+=':new_appname:'
|
||||
;;
|
||||
|
||||
syncdb)
|
||||
args+=(
|
||||
$verbosity
|
||||
$noinput
|
||||
)
|
||||
;;
|
||||
|
||||
"test")
|
||||
args+=(
|
||||
$verbosity
|
||||
$noinput
|
||||
'*:appname:_appname'
|
||||
)
|
||||
;;
|
||||
|
||||
testserver)
|
||||
args+=(
|
||||
$verbosity
|
||||
'--addrport=:addrport:('$port_opts'):[port number or ipaddr:port to run server on]'
|
||||
'*:fixture:'
|
||||
)
|
||||
;;
|
||||
|
||||
validate|runfcgi)
|
||||
;;
|
||||
esac
|
||||
|
||||
_arguments $args && ret=0
|
||||
;;
|
||||
esac
|
||||
|
||||
return ret
|
Loading…
Reference in a new issue