Bug#500489: Completion for Django

2008-09-28 Thread Chris Lamb
Package: zsh
Version: 4.3.6-7
Severity: wishlist
Tags: patch

Hi,

Attached is a zsh completion script for Django 1.0.


Regards,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  [EMAIL PROTECTED]
   `-


_django
Description: Binary data


signature.asc
Description: PGP signature


Bug#500489: Completion for Django

2008-09-28 Thread Clint Adams
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 -  1.96
+++ Completion/Unix/Command/.distfiles  28 Sep 2008 19:32:45 -
@@ -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 -
+++ Completion/Unix/Command/_django 28 Sep 2008 19:32:45 -
@@ -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'
+)
+;;
+
+  dumpd