Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Bug#500489: Completion for Django
- X-seq: zsh-workers 25764
- From: Clint Adams <schizo@xxxxxxxxxx>
- To: Chris Lamb <lamby@xxxxxxxxxx>, 500489@xxxxxxxxxxxxxxx
- Subject: Re: Bug#500489: Completion for Django
- Date: Sun, 28 Sep 2008 19:34:23 +0000
- Cc: zsh-workers@xxxxxxxxxx
- In-reply-to: <20080928202453.786dbe51@xxxxxxxxxxxxxxxxxxxxxxx>
- Mail-followup-to: Chris Lamb <lamby@xxxxxxxxxx>, 500489@xxxxxxxxxxxxxxx, zsh-workers@xxxxxxxxxx
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20080928202453.786dbe51@xxxxxxxxxxxxxxxxxxxxxxx>
On Sun, Sep 28, 2008 at 08:24:53PM +0100, Chris Lamb wrote:
> Attached is a zsh completion script for Django 1.0.
Thanks.
Index: Completion/Unix/Command/.distfiles
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/.distfiles,v
retrieving revision 1.96
diff -u -r1.96 .distfiles
--- Completion/Unix/Command/.distfiles 21 Jul 2008 19:15:25 -0000 1.96
+++ Completion/Unix/Command/.distfiles 28 Sep 2008 19:32:45 -0000
@@ -42,6 +42,7 @@
_dict
_diff
_diffstat
+_django
_dmidecode
_du
_dvi
Index: Completion/Unix/Command/_django
===================================================================
RCS file: Completion/Unix/Command/_django
diff -N Completion/Unix/Command/_django
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Completion/Unix/Command/_django 28 Sep 2008 19:32:45 -0000
@@ -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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author