Commit 00eb4658 authored by Andrew Janke's avatar Andrew Janke
Browse files

Merge branch 'master' into fold-terminalapp-plugin-into-termsupport

parents 47d19cc5 192de6bc
#compdef boot2docker
# Boot2docker autocompletion for oh-my-zsh
# Requires: Boot2docker installed
# Author: Manfred Touron (@moul)
local -a _1st_arguments
_1st_arguments=(
"init":"Create a new Boot2Docker VM."
"up":"Start VM from any states."
"start":"Start VM from any states."
"boot":"Start VM from any states."
"ssh":"[ssh-command] Login to VM via SSH."
"save":"Suspend VM and save state to disk."
"suspend":"Suspend VM and save state to disk."
"down":"Gracefully shutdown the VM."
"stop":"Gracefully shutdown the VM."
"halt":"Gracefully shutdown the VM."
"restart":"Gracefully reboot the VM."
"poweroff":"Forcefully power off the VM (may corrupt disk image)."
"reset":"Forcefully power cycle the VM (may corrupt disk image)."
"delete":"Delete Boot2Docker VM and its disk image."
"destroy":"Delete Boot2Docker VM and its disk image."
"config":"Show selected profile file settings."
"cfg":"Show selected profile file settings."
"info":"Display detailed information of VM."
"ip":"Display the IP address of the VM's Host-only network."
"socket":"Display the DOCKER_HOST socket to connect to."
"shellinit":"Display the shell command to set up the Docker client."
"status":"Display current state of VM."
"download":"Download Boot2Docker ISO image."
"upgrade":"Upgrade the Boot2Docker ISO image (restart if running)."
"version":"Display version information."
)
_arguments \
'(--basevmdk)--basevmdk[Path to VMDK to use as base for persistent partition]' \
'(--cpus)'{-c,--cpus}'[number of CPUs for boot2docker.]' \
'(--clobber)--clobber[overwrite Docker client binary on boot2docker upgrade]' \
'(--dhcp)--dhcp[enable VirtualBox host-only network DHCP.]' \
'(--dhcpip)--dhcpip[VirtualBox host-only network DHCP server address.]' \
'(-s --disksize)'{-s,--disksize}'[boot2docker disk image size (in MB).]' \
'(--dockerport)--dockerport[host Docker port (forward to port 2376 in VM). (deprecated - use with care)]' \
'(--driver)--driver[hypervisor driver.]' \
'(--force-upgrade-download)--force-upgrade-download[always download on boot2docker upgrade, never skip.]' \
'(--hostip)--hostip[VirtualBox host-only network IP address.]' \
'(--iso)--iso[path to boot2docker ISO image.]' \
'(--iso-url)--iso-url[/api.github.com/repos/boot2docker/boot2docker/releases": source URL to provision the boot2docker ISO image.]' \
'(--lowerip)--lowerip[VirtualBox host-only network DHCP lower bound.]' \
'(--memory)'{-m,--memory}'[virtual machine memory size (in MB).]' \
'(--netmask)--netmask[VirtualBox host-only network mask.]' \
'(--no-dummy)--no-dummy[Example parameter for the dummy driver.]' \
'(--retries)--retries[number of port knocking retries during 'start']' \
'(--serial)--serial[try serial console to get IP address (experimental)]' \
'(--serialfile)--serialfile[path to the serial socket/pipe.]' \
'(--ssh)--ssh[path to SSH client utility.]' \
'(--ssh-keygen)--ssh-keygen[path to ssh-keygen utility.]' \
'(--sshkey)--sshkey[path to SSH key to use.]' \
'(--sshport)--sshport[host SSH port (forward to port 22 in VM).]' \
'(--upperip)--upperip[VirtualBox host-only network DHCP upper bound.]' \
'(--vbm)--vbm[path to VirtualBox management utility.]' \
'(--vbox-share)--vbox-share[(defaults to "/Users=Users" if no shares are specified; use "disable" to explicitly prevent any shares from being created) List of directories to share during "up|start|boot" via VirtualBox Guest Additions, with optional labels]' \
'(--verbose)'{-v,--verbose}'[display verbose command invocations.]' \
'(--vm)--vm[virtual machine name.]' \
'(--waittime)--waittime[Time in milliseconds to wait between port knocking retries during 'start']' \
'*:: :->subcmds' && return 0
#_arguments '*:: :->command'
if (( CURRENT == 1 )); then
_describe -t commands "boot2docker command" _1st_arguments
return
fi
...@@ -35,6 +35,7 @@ _1st_arguments=( ...@@ -35,6 +35,7 @@ _1st_arguments=(
'info:information about a formula' 'info:information about a formula'
'install:install a formula' 'install:install a formula'
'reinstall:install a formula anew; re-using its current options' 'reinstall:install a formula anew; re-using its current options'
'leaves:show installed formulae that are not dependencies of another installed formula'
'link:link a formula' 'link:link a formula'
'list:list files in a formula or not-installed formulae' 'list:list files in a formula or not-installed formulae'
'log:git commit log for a formula' 'log:git commit log for a formula'
......
alias brews='brew list -1' alias brews='brew list -1'
alias bubu="brew update && brew upgrade && brew cleanup" alias bubo='brew update && brew outdated'
alias bubc='brew upgrade && brew cleanup'
alias bubu='bubo && bubc'
...@@ -39,7 +39,7 @@ This will exclude the `foreman` and `spin` gems (i.e. their executable) from bei ...@@ -39,7 +39,7 @@ This will exclude the `foreman` and `spin` gems (i.e. their executable) from bei
## Excluded gems ## Excluded gems
These gems should not be called with `bundle exec`. Please see the Issues on GitHub for clarification. These gems should not be called with `bundle exec`. Please see [issue #2923](https://github.com/robbyrussell/oh-my-zsh/pull/2923) on GitHub for clarification.
`berks` `berks`
`foreman` `foreman`
......
...@@ -4,6 +4,7 @@ alias bp="bundle package" ...@@ -4,6 +4,7 @@ alias bp="bundle package"
alias bo="bundle open" alias bo="bundle open"
alias bu="bundle update" alias bu="bundle update"
alias bi="bundle_install" alias bi="bundle_install"
alias bcn="bundle clean"
bundled_commands=( bundled_commands=(
annotate annotate
......
...@@ -17,13 +17,16 @@ function _cabal_commands() { ...@@ -17,13 +17,16 @@ function _cabal_commands() {
subcommand) subcommand)
subcommands=( subcommands=(
"bench:Run the benchmark, if any (configure with UserHooks)" "bench:Run the benchmark, if any (configure with UserHooks)"
"build:Make this package ready for installation" "build:Compile all targets or specific target."
"check:Check the package for common mistakes" "check:Check the package for common mistakes"
"clean:Clean up after a build" "clean:Clean up after a build"
"copy:Copy teh files into the install locations" "copy:Copy the files into the install locations"
"configure:Prepare to build the package" "configure:Prepare to build the package"
"exec:Run a command with the cabal environment"
"fetch:Downloads packages for later installation" "fetch:Downloads packages for later installation"
"haddock:Generate HAddock HTML documentation" "freeze:Freeze dependencies."
"get:Gets a package's source code"
"haddock:Generate Haddock HTML documentation"
"help:Help about commands" "help:Help about commands"
"hscolour:Generate HsColour colourised code, in HTML format" "hscolour:Generate HsColour colourised code, in HTML format"
"info:Display detailed information about a particular package" "info:Display detailed information about a particular package"
...@@ -31,7 +34,10 @@ function _cabal_commands() { ...@@ -31,7 +34,10 @@ function _cabal_commands() {
"install:Installs a list of packages" "install:Installs a list of packages"
"list:List packages matching a search string" "list:List packages matching a search string"
"register:Register this package with the compiler" "register:Register this package with the compiler"
"repl:Open an interpreter session for the given target"
"report:Upload build reports to a remote server" "report:Upload build reports to a remote server"
"run:Runs the compiled executable"
"sandbox:Create/modify/delete a sandbox"
"sdist:Generate a source distribution file (.tar.gz)" "sdist:Generate a source distribution file (.tar.gz)"
"test:Run the test suite, if any (configure with UserHooks)" "test:Run the test suite, if any (configure with UserHooks)"
"unpack:Unpacks packages for user inspection" "unpack:Unpacks packages for user inspection"
...@@ -45,3 +51,43 @@ function _cabal_commands() { ...@@ -45,3 +51,43 @@ function _cabal_commands() {
} }
compdef _cabal_commands cabal compdef _cabal_commands cabal
function _cab_commands() {
local ret=1 state
_arguments ':subcommand:->subcommand' && ret=0
case $state in
subcommand)
subcommands=(
"sync:Fetch the latest package index"
"install:Install packages"
"uninstall:Uninstall packages"
"installed:List installed packages"
"configure:Configure a cabal package"
"build:Build a cabal package"
"clean:Clean up a build directory"
"outdated:Display outdated packages"
"info:Display information of a package"
"sdist:Make tar.gz for source distribution"
"upload:Uploading tar.gz to HackageDB"
"get:Untar a package in the current directory"
"deps:Show dependencies of this package"
"revdeps:Show reverse dependencies of this package"
"check:Check consistency of packages"
"genpaths:Generate Paths_<pkg>.hs"
"search:Search available packages by package name"
"add:Add a source directory"
"test:Run tests"
"bench:Run benchmarks"
"doc:Generate manuals"
"ghci:Run GHCi (with a sandbox)"
"init:Initialize a sandbox"
"help:Display the help message of the command"
)
_describe -t subcommands 'cab subcommands' subcommands && ret=0
esac
return ret
}
command -v cab >/dev/null 2>&1 && { compdef _cab_commands cab }
# CakePHP 3 basic command completion
_cakephp3_get_command_list () {
cakephp3commands=($(bin/cake completion commands));printf "%s\n" "${cakephp3commands[@]}"
}
_cakephp3 () {
if [ -f bin/cake ]; then
compadd `_cakephp3_get_command_list`
fi
}
compdef _cakephp3 bin/cake
compdef _cakephp3 cake
#Alias
alias c3='bin/cake'
alias c3cache='bin/cake orm_cache clear'
alias c3migrate='bin/cake migrations migrate'
if which cask &> /dev/null; then
source $(dirname $(which cask))/../etc/cask_completion.zsh
else
print "zsh cask plugin: cask not found"
fi
fortunes/chucknorris.dat
License: GPL v2
Thanks to http://www.k-lug.org/~kessler/projects.html for the fortune file.
if [ ! -f $ZSH/plugins/chucknorris/fortunes/chucknorris.dat ]; then
strfile $ZSH/plugins/chucknorris/fortunes/chucknorris $ZSH/plugins/chucknorris/fortunes/chucknorris.dat
fi
alias chuck="fortune -a $ZSH/plugins/chucknorris/fortunes"
alias chuck_cow="chuck | cowthink"
This diff is collapsed.
## Coffeescript Plugin
This plugin provides aliases for quickly compiling and previewing your
cofeescript code.
When writing Coffeescript it's very common to want to preview the output of a
certain snippet of code, either because you want to test the output or because
you'd like to execute it in a browser console which doesn't accept Coffeescript.
Preview the compiled result of your coffeescript with `cf "code"` as per the
following:
```zsh
$ cf 'if a then be else c'
if (a) {
b;
} else {
c;
}
```
Also provides the following aliases:
* **cfc:** Copies the compiled JS to your clipboard. Very useful when you want
to run the code in a JS console.
* **cfp:** Compiles from your currently copied clipboard. Useful when you want
to compile large/multi-line snippets
* **cfpc:** Paste coffeescript from clipboard, compile to JS, then copy the
the result back to clipboard.
#!/bin/zsh
# compile a string of coffeescript and print to output
cf () {
coffee -peb $1
}
# compile & copy to clipboard
cfc () {
cf $1 | pbcopy
}
# compile from pasteboard & print
alias cfp='coffeeMe "$(pbpaste)"'
# compile from pasteboard and copy to clipboard
alias cfpc='cfp | pbcopy'
...@@ -13,7 +13,7 @@ alias lS='ls -1FSsh' ...@@ -13,7 +13,7 @@ alias lS='ls -1FSsh'
alias lart='ls -1Fcart' alias lart='ls -1Fcart'
alias lrt='ls -1Fcrt' alias lrt='ls -1Fcrt'
alias zshrc='vim ~/.zshrc' # Quick access to the ~/.zshrc file alias zshrc='$EDITOR ~/.zshrc' # Quick access to the ~/.zshrc file
alias grep='grep --color' alias grep='grep --color'
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} ' alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} '
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
# Composer basic command completion # Composer basic command completion
_composer_get_command_list () { _composer_get_command_list () {
$_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^\s*[a-z]+/ { print $1 }' $_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }'
} }
_composer_get_required_list () { _composer_get_required_list () {
......
...@@ -9,8 +9,10 @@ ...@@ -9,8 +9,10 @@
# You can just set apt_pref='apt-get' to override it. # You can just set apt_pref='apt-get' to override it.
if [[ -e $( which -p aptitude 2>&1 ) ]]; then if [[ -e $( which -p aptitude 2>&1 ) ]]; then
apt_pref='aptitude' apt_pref='aptitude'
apt_upgr='safe-upgrade'
else else
apt_pref='apt-get' apt_pref='apt-get'
apt_upgr='upgrade'
fi fi
# Use sudo by default if it's installed # Use sudo by default if it's installed
...@@ -45,10 +47,10 @@ if [[ $use_sudo -eq 1 ]]; then ...@@ -45,10 +47,10 @@ if [[ $use_sudo -eq 1 ]]; then
alias abd='sudo $apt_pref build-dep' alias abd='sudo $apt_pref build-dep'
alias ac='sudo $apt_pref clean' alias ac='sudo $apt_pref clean'
alias ad='sudo $apt_pref update' alias ad='sudo $apt_pref update'
alias adg='sudo $apt_pref update && sudo $apt_pref upgrade' alias adg='sudo $apt_pref update && sudo $apt_pref $apt_upgr'
alias adu='sudo $apt_pref update && sudo $apt_pref dist-upgrade' alias adu='sudo $apt_pref update && sudo $apt_pref dist-upgrade'
alias afu='sudo apt-file update' alias afu='sudo apt-file update'
alias ag='sudo $apt_pref upgrade' alias ag='sudo $apt_pref $apt_upgr'
alias ai='sudo $apt_pref install' alias ai='sudo $apt_pref install'
# Install all packages given on the command line while using only the first word of each line: # Install all packages given on the command line while using only the first word of each line:
# acs ... | ail # acs ... | ail
...@@ -80,10 +82,10 @@ else ...@@ -80,10 +82,10 @@ else
} }
alias ac='su -ls \'$apt_pref clean\' root' alias ac='su -ls \'$apt_pref clean\' root'
alias ad='su -lc \'$apt_pref update\' root' alias ad='su -lc \'$apt_pref update\' root'
alias adg='su -lc \'$apt_pref update && aptitude safe-upgrade\' root' alias adg='su -lc \'$apt_pref update && aptitude $apt_upgr\' root'
alias adu='su -lc \'$apt_pref update && aptitude dist-upgrade\' root' alias adu='su -lc \'$apt_pref update && aptitude dist-upgrade\' root'
alias afu='su -lc "apt-file update"' alias afu='su -lc "apt-file update"'
alias ag='su -lc \'$apt_pref safe-upgrade\' root' alias ag='su -lc \'$apt_pref $apt_upgr\' root'
ai() { ai() {
cmd="su -lc 'aptitude -P install $@' root" cmd="su -lc 'aptitude -P install $@' root"
print "$cmd" print "$cmd"
...@@ -136,7 +138,7 @@ apt_pref_compdef abd "build-dep" ...@@ -136,7 +138,7 @@ apt_pref_compdef abd "build-dep"
apt_pref_compdef ac "clean" apt_pref_compdef ac "clean"
apt_pref_compdef ad "update" apt_pref_compdef ad "update"
apt_pref_compdef afu "update" apt_pref_compdef afu "update"
apt_pref_compdef ag "upgrade" apt_pref_compdef ag "$apt_upgr"
apt_pref_compdef ai "install" apt_pref_compdef ai "install"
apt_pref_compdef ail "install" apt_pref_compdef ail "install"
apt_pref_compdef ap "purge" apt_pref_compdef ap "purge"
......
...@@ -49,7 +49,8 @@ function push_future() { ...@@ -49,7 +49,8 @@ function push_future() {
} }
# Called by zsh when directory changes # Called by zsh when directory changes
function chpwd() { chpwd_functions+=(chpwd_dirhistory)
function chpwd_dirhistory() {
push_past $PWD push_past $PWD
# If DIRHISTORY_CD is not set... # If DIRHISTORY_CD is not set...
if [[ -z "${DIRHISTORY_CD+x}" ]]; then if [[ -z "${DIRHISTORY_CD+x}" ]]; then
......
...@@ -11,7 +11,8 @@ if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then ...@@ -11,7 +11,8 @@ if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD [[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
fi fi
chpwd() { chpwd_functions+=(chpwd_dirpersist)
chpwd_dirpersist() {
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
local -ax my_stack local -ax my_stack
my_stack=( ${PWD} ${dirstack} ) my_stack=( ${PWD} ${dirstack} )
......
...@@ -2,59 +2,114 @@ ...@@ -2,59 +2,114 @@
typeset -ga nul_args typeset -ga nul_args
nul_args=( nul_args=(
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))'
'--settings=-[the Python path to a settings module.]:file:_files' '--settings=-[the Python path to a settings module.]:file:_files'
'--pythonpath=-[a directory to add to the Python path.]::directory:_directories' '--pythonpath=-[a directory to add to the Python path.]:directory:_directories'
'--traceback[print traceback on exception.]' '--traceback[print traceback on exception.]'
"--no-color[Don't colorize the command output.]"
"--version[show program's version number and exit.]" "--version[show program's version number and exit.]"
{-h,--help}'[show this help message and exit.]' {-h,--help}'[show this help message and exit.]'
) )
_managepy-adminindex(){ typeset -ga start_args
start_args=(
'--template=-[The path or URL to load the template from.]:directory:_directories'
'--extension=-[The file extension(s) to render (default: "py").]'
'--name=-[The file name(s) to render.]:file:_files'
)
typeset -ga db_args
db_args=(
'--database=-[Nominates a database. Defaults to the "default" database.]'
)
typeset -ga noinput_args
noinput_args=(
'--noinput[tells Django to NOT prompt the user for input of any kind.]'
)
typeset -ga no_init_data_args
no_init_data_args=(
'--no-initial-data[Tells Django not to load any initial data after database synchronization.]'
)
typeset -ga tag_args
tag_args=(
'--tag=-[Run only checks labeled with given tag.]'
'--list-tags[List available tags.]'
)
_managepy-check(){
_arguments -s : \ _arguments -s : \
$nul_args \ $tag_args \
'*::directory:_directories' && ret=0 $nul_args && ret=0
}
_managepy-changepassword(){
_arguments -s : \
$db_args \
$nul_args && ret=0
} }
_managepy-createcachetable(){ _managepy-createcachetable(){
_arguments -s : \ _arguments -s : \
$db_args \
$nul_args && ret=0
}
_managepy-createsuperuser(){
_arguments -s : \
'--username=-[Specifies the login for the superuser.]' \
'--email=-[Specifies the email for the superuser.]' \
$noinput_args \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-collectstatic(){ _managepy-collectstatic(){
_arguments -s : \ _arguments -s : \
'--link=-[Create a symbolic link to each file instead of copying.]:' \ '--link[Create a symbolic link to each file instead of copying.]' \
'--noinput=-[Do NOT prompt the user for input of any kind.]:' \ '--no-post-process[Do NOT post process collected files.]' \
'--no-post-process=-[Do NOT post process collected files.]:' \ '--ignore=-[Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more.]' \
'--ignore=-[Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more.]:' \ '--dry-run[Do everything except modify the filesystem.]' \
'--dry-run=-[Do everything except modify the filesystem.]:' \ '--clear[Clear the existing files using the storage before trying to copy or link the original file.]' \
'--clear=-[Clear the existing files using the storage before trying to copy or link the original file.]:' \ '--link[Create a symbolic link to each file instead of copying.]' \
'--link=-[Create a symbolic link to each file instead of copying.]:' \ '--no-default-ignore[Do not ignore the common private glob-style patterns "CVS", ".*" and "*~".]' \
'--no-default-ignore=-[Do not ignore the common private glob-style patterns "CVS", ".*" and "*~".]:' \ $noinput_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-dbshell(){ _managepy-dbshell(){
_arguments -s : \ _arguments -s : \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-diffsettings(){ _managepy-diffsettings(){
_arguments -s : \ _arguments -s : \
"--all[Display all settings, regardless of their value.]"
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-dumpdata(){ _managepy-dumpdata(){
_arguments -s : \ _arguments -s : \
'--format=-[specifies the output serialization format for fixtures.]:format:(json yaml xml)' \ '--format=-[Specifies the output serialization format for fixtures.]:format:(json yaml xml)' \
'--indent=-[specifies the indent level to use when pretty-printing output.]:' \ '--indent=-[Specifies the indent level to use when pretty-printing output.]' \
'--exclude=-[An app_label or app_label.ModelName to exclude (use multiple --exclude to exclude multiple apps/models).]' \
'--natural-foreign[Use natural foreign keys if they are available.]' \
'--natural-primary[Use natural primary keys if they are available.]' \
"--all[Use Django's base manager to dump all models stored in the database.]" \
'--pks=-[Only dump objects with given primary keys.]' \
$db_args \
$nul_args \ $nul_args \
'*::appname:_applist' && ret=0 '*::appname:_applist' && ret=0
} }
_managepy-flush(){ _managepy-flush(){
_arguments -s : \ _arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ $no_init_data_args \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ $db_args \
$noinput_args \
$nul_args && ret=0 $nul_args && ret=0
} }
...@@ -75,32 +130,61 @@ _managepy_cmds(){ ...@@ -75,32 +130,61 @@ _managepy_cmds(){
_managepy-inspectdb(){ _managepy-inspectdb(){
_arguments -s : \ _arguments -s : \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-loaddata(){ _managepy-loaddata(){
_arguments -s : \ _arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ '--ignorenonexistent[Ignores entries in the serialized data for fields that do not currently exist on the model.]' \
'--app=-[Only look for fixtures in the specified app.]:appname:_applist' \
'*::file:_files' \ '*::file:_files' \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-reset(){ _managepy-makemessages(){
_arguments -s : \ _arguments -s : \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ '--locale=-[Creates or updates the message files for the given locale(s) (e.g. pt_BR).]' \
'*::appname:_applist' \ '--domain=-[The domain of the message files (default: "django").]' \
'--all[Updates the message files for all existing locales.]' \
'--extension=-[The file extension(s) to examine (default: "html,txt", or "js" if the domain is "djangojs").]' \
'--symlinks[Follows symlinks to directories when examining source code and templates for translation strings.]' \
'--ignore=-[Ignore files or directories matching this glob-style pattern.]' \
"--no-default-ignore[Don't ignore the common glob-style patterns 'CVS', '.*', '*~' and '*.pyc'.]" \
"--no-wrap[Don't break long message lines into several lines.]" \
"--no-location[Don't write '#: filename:line' lines.]" \
'--no-obsolete[emove obsolete message strings.]' \
'--keep-pot[Keep .pot file after making messages.]' \
$nul_args && ret=0
}
_managepy-makemigrations(){
_arguments -s : \
'--dry-run[Just show what migrations would be made]' \
'--merge[Enable fixing of migration conflicts.]' \
'--empty[Create an empty migration.]' \
$noinput_args \
$nul_args && ret=0
}
_managepy-migrate(){
_arguments -s : \
'--fake[Mark migrations as run without actually running them]' \
'--list[Show a list of all known migrations and which are applied]' \
$no_init_data_args \
$noinput_args \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-runfcgi(){ _managepy-runfcgi(){
local state local state
local fcgi_opts local fcgi_opts
fcgi_opts=( fcgi_opts=(
'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)' 'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)'
'host[hostname to listen on..]:' 'host[hostname to listen on..]:'
'port[port to listen on.]:' 'port[port to listen on.]:'
'socket[UNIX socket to listen on.]::file:_files' 'socket[UNIX socket to listen on.]:file:_files'
'method[prefork or threaded (default prefork)]:method:(prefork threaded)' 'method[prefork or threaded (default prefork)]:method:(prefork threaded)'
'maxrequests[number of requests a child handles before it is killed and a new child is forked (0 = no limit).]:' 'maxrequests[number of requests a child handles before it is killed and a new child is forked (0 = no limit).]:'
'maxspare[max number of spare processes / threads.]:' 'maxspare[max number of spare processes / threads.]:'
...@@ -112,7 +196,7 @@ _managepy-runfcgi(){ ...@@ -112,7 +196,7 @@ _managepy-runfcgi(){
'outlog[write stdout to this file.]:file:_files' 'outlog[write stdout to this file.]:file:_files'
'errlog[write stderr to this file.]:file:_files' 'errlog[write stderr to this file.]:file:_files'
) )
_arguments -s : \ _arguments -s : \
$nul_args \ $nul_args \
'*: :_values "FCGI Setting" $fcgi_opts' && ret=0 '*: :_values "FCGI Setting" $fcgi_opts' && ret=0
...@@ -120,72 +204,148 @@ _managepy-runfcgi(){ ...@@ -120,72 +204,148 @@ _managepy-runfcgi(){
_managepy-runserver(){ _managepy-runserver(){
_arguments -s : \ _arguments -s : \
'--noreload[tells Django to NOT use the auto-reloader.]' \ '--ipv6[Tells Django to use an IPv6 address.]' \
'--adminmedia[specifies the directory from which to serve admin media.]:directory:_files' \ '--nothreading[Tells Django to NOT use threading.]' \
'--noreload[Tells Django to NOT use the auto-reloader.]' \
'--nostatic[Tells Django to NOT automatically serve static files at STATIC_URL.]' \
'--insecure[Allows serving static files even if DEBUG is False.]' \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-shell(){ _managepy-shell(){
_arguments -s : \ _arguments -s : \
'--plain[tells Django to use plain Python, not IPython.]' \ '--plain[Tells Django to use plain Python, not IPython.]' \
'--no-startup[When using plain Python, ignore the PYTHONSTARTUP environment variable and ~/.pythonrc.py script.]' \
'--interface=-[Specify an interactive interpreter interface.]:INTERFACE:((ipython bpython))' \
$nul_args && ret=0
}
_managepy-sql(){
_arguments -s : \
$db_args \
$nul_args && ret=0
}
_managepy-sqlall(){
_arguments -s : \
$db_args \
$nul_args && ret=0
}
_managepy-sqlclear(){
_arguments -s : \
$db_args \
$nul_args && ret=0
}
_managepy-sqlcustom(){
_arguments -s : \
$db_args \
$nul_args && ret=0
}
_managepy-dropindexes(){
_arguments -s : \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-sql(){} _managepy-sqlflush(){
_managepy-sqlall(){} _arguments -s : \
_managepy-sqlclear(){} $db_args \
_managepy-sqlcustom(){} $nul_args && ret=0
_managepy-sqlflush(){} }
_managepy-sqlindexes(){}
_managepy-sqlinitialdata(){} _managepy-sqlindexes(){
_managepy-sqlreset(){} _arguments -s : \
_managepy-sqlsequencereset(){} $db_args \
_managepy-startapp(){} $nul_args && ret=0
_managepy-startproject(){} }
_managepy-sqlinitialdata(){
_arguments -s : \
$nul_args && ret=0
}
_managepy-sqlsequencereset(){
_arguments -s : \
$db_args \
$nul_args && ret=0
}
_managepy-squashmigrations(){
_arguments -s : \
'--no-optimize[Do not try to optimize the squashed operations.]' \
$noinput_args \
$nul_args && ret=0
}
_managepy-startapp(){
_arguments -s : \
$start_args \
$nul_args && ret=0
}
_managepy-startproject(){
_arguments -s : \
$start_args \
$nul_args && ret=0
}
_managepy-syncdb() { _managepy-syncdb() {
_arguments -s : \ _arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ $noinput_args \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ $no_init_data_args \
$db_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-test() { _managepy-test() {
_arguments -s : \ _arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ '--failfast[Tells Django to stop running the test suite after first failed test.]' \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ '--testrunner=-[Tells Django to use specified test runner class instead of the one specified by the TEST_RUNNER setting.]' \
'--liveserver=-[Overrides the default address where the live server (used with LiveServerTestCase) is expected to run from. The default value is localhost:8081.]' \
'--top-level-directory=-[Top level of project for unittest discovery.]' \
'--pattern=-[The test matching pattern. Defaults to test*.py.]:' \
$noinput_args \
'*::appname:_applist' \ '*::appname:_applist' \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-testserver() { _managepy-testserver() {
_arguments -s : \ _arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \
'--addrport=-[port number or ipaddr:port to run the server on.]' \ '--addrport=-[port number or ipaddr:port to run the server on.]' \
'--ipv6[Tells Django to use an IPv6 address.]' \
$noinput_args \
'*::fixture:_files' \ '*::fixture:_files' \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-validate() { _managepy-validate() {
_arguments -s : \ _arguments -s : \
$tag_args \
$nul_args && ret=0 $nul_args && ret=0
} }
_managepy-commands() { _managepy-commands() {
local -a commands local -a commands
commands=( commands=(
'adminindex:prints the admin-index template snippet for the given app name(s).' "changepassword:Change a user's password for django.contrib.auth."
'createcachetable:creates the table needed to use the SQL cache backend.' 'check:Checks the entire Django project for potential problems.'
'compilemessages:Compiles .po files to .mo files for use with builtin gettext support.'
'createcachetable:Creates the table needed to use the SQL cache backend.'
'createsuperuser:Used to create a superuser.'
'collectstatic:Collect static files in a single location.' 'collectstatic:Collect static files in a single location.'
'dbshell:runs the command-line client for the current DATABASE_ENGINE.' 'dbshell:Runs the command-line client for the current DATABASE_ENGINE.'
"diffsettings:displays differences between the current settings.py and Django's default settings." "diffsettings:Displays differences between the current settings.py and Django's default settings."
'dumpdata:Output the contents of the database as a fixture of the given format.' 'dumpdata:Output the contents of the database as a fixture of the given format.'
'flush:Executes ``sqlflush`` on the current database.' 'flush:Executes ``sqlflush`` on the current database.'
'help:manage.py help.' 'help:manage.py help.'
'inspectdb:Introspects the database tables in the given database and outputs a Django model module.' 'inspectdb:Introspects the database tables in the given database and outputs a Django model module.'
'loaddata:Installs the named fixture(s) in the database.' 'loaddata:Installs the named fixture(s) in the database.'
'reset:Executes ``sqlreset`` for the given app(s) in the current database.' 'makemessages:Runs over the entire source tree of the current directory and pulls out all strings marked for translation.'
'makemigrations:Creates new migration(s) for apps.'
'migrate:Updates database schema. Manages both apps with migrations and those without.'
'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,' 'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,'
'runserver:Starts a lightweight Web server for development.' 'runserver:Starts a lightweight Web server for development.'
'shell:Runs a Python interactive interpreter.' 'shell:Runs a Python interactive interpreter.'
...@@ -193,11 +353,12 @@ _managepy-commands() { ...@@ -193,11 +353,12 @@ _managepy-commands() {
'sqlall:Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).' 'sqlall:Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).'
'sqlclear:Prints the DROP TABLE SQL statements for the given app name(s).' 'sqlclear:Prints the DROP TABLE SQL statements for the given app name(s).'
'sqlcustom:Prints the custom table modifying SQL statements for the given app name(s).' 'sqlcustom:Prints the custom table modifying SQL statements for the given app name(s).'
'sqldropindexes:Prints the DROP INDEX SQL statements for the given model module name(s).'
'sqlflush:Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.' 'sqlflush:Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.'
'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).' 'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).'
"sqlinitialdata:RENAMED: see 'sqlcustom'" "sqlinitialdata:RENAMED: see 'sqlcustom'"
'sqlreset:Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).'
'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).' 'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).'
'squashmigrations:Squashes an existing set of migrations (from first until specified) into a single new one.'
"startapp:Creates a Django app directory structure for the given app name in this project's directory." "startapp:Creates a Django app directory structure for the given app name in this project's directory."
"startproject:Creates a Django project directory structure for the given project name in this current directory." "startproject:Creates a Django project directory structure for the given project name in this current directory."
"syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." "syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created."
...@@ -205,7 +366,7 @@ _managepy-commands() { ...@@ -205,7 +366,7 @@ _managepy-commands() {
'testserver:Runs a development server with data from the given fixture(s).' 'testserver:Runs a development server with data from the given fixture(s).'
'validate:Validates all installed models.' 'validate:Validates all installed models.'
) )
_describe -t commands 'manage.py command' commands && ret=0 _describe -t commands 'manage.py command' commands && ret=0
} }
...@@ -223,7 +384,7 @@ _applist() { ...@@ -223,7 +384,7 @@ _applist() {
_managepy() { _managepy() {
local curcontext=$curcontext ret=1 local curcontext=$curcontext ret=1
if ((CURRENT == 2)); then if ((CURRENT == 2)); then
_managepy-commands _managepy-commands
else else
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment