Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh

This commit is contained in:
Anton Stroganov 2011-12-19 21:24:23 -08:00
commit ab9d41543c
21 changed files with 243 additions and 70 deletions

View file

@ -1,3 +1,5 @@
if [ -f `brew --prefix`/etc/autojump ]; then
if [ -f /opt/local/etc/profile.d/autojump.sh ]; then
. /opt/local/etc/profile.d/autojump.sh
elif [ -f `brew --prefix`/etc/autojump ]; then
. `brew --prefix`/etc/autojump
fi

View file

@ -26,7 +26,7 @@ _knife() {
case $state in
knifecmd)
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec index node recipe role search ssh status windows $cloudproviders
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec environment index node recipe role search ssh status windows $cloudproviders
;;
knifesubcmd)
case $words[2] in
@ -42,6 +42,9 @@ _knife() {
cookbook)
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
;;
environment)
compadd -Q "$@" list create delete edit show "from file"
;;
node)
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
;;
@ -161,6 +164,10 @@ _chef_data_bags_remote() {
(knife data bag list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_environments_remote() {
(knife environment list | awk '{print $1}')
}
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
_chef_cookbooks_local() {
(for i in $( grep cookbook_path $HOME/.chef/knife.rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done)

View file

@ -0,0 +1,5 @@
if [[ -x `which nc` ]]; then
alias nyan='nc -v miku.acm.uiuc.edu 23' # nyan cat
fi

View file

@ -3,30 +3,43 @@
# pip zsh completion, based on homebrew completion
_pip_all() {
# we cache the list of packages (originally from the macports plugin)
if (( ! $+piplist )); then
echo -n " (caching package index...)"
piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'))
fi
}
_pip_installed() {
installed_pkgs=(`pip freeze`)
installed_pkgs=(`pip freeze | cut -d '=' -f 1`)
}
local -a _1st_arguments
_1st_arguments=(
'bundle:Create pybundles (archives containing multiple packages)'
'freeze:Output all currently installed packages (exact versions) to stdout'
'help:Show available commands'
'install:Install packages'
'search:Search PyPI'
'uninstall:Uninstall packages'
'unzip:Unzip individual packages'
'zip:Zip individual packages'
'bundle:create pybundles (archives containing multiple packages)'
'freeze:output all currently installed packages (exact versions) to stdout'
'help:show available commands'
'install:install packages'
'search:search PyPI'
'uninstall:uninstall packages'
'unzip:unzip individual packages'
'zip:zip individual packages'
)
local expl
local -a pkgs installed_pkgs
local -a all_pkgs installed_pkgs
_arguments \
'(--version)--version[Show version number of program and exit]' \
'(-v --verbose)'{-v,--verbose}'[Give more output]' \
'(-q --quiet)'{-q,--quiet}'[Give less output]' \
'(-h --help)'{-h,--help}'[Show help]' \
'(--version)--version[show version number of program and exit]' \
'(-h --help)'{-h,--help}'[show help]' \
'(-E --environment)'{-E,--environment}'[virtualenv environment to run pip in]' \
'(-s --enable-site-packages)'{-s,--enable-site-packages}'[include site-packages in virtualenv]' \
'(-v --verbose)'{-v,--verbose}'[give more output]' \
'(-q --quiet)'{-q,--quiet}'[give less output]' \
'(--log)--log[log file location]' \
'(--proxy)--proxy[proxy in form user:passwd@proxy.server:port]' \
'(--timeout)--timeout[socket timeout (default 15s)]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
@ -35,10 +48,25 @@ if (( CURRENT == 1 )); then
fi
case "$words[1]" in
list)
if [[ "$state" == forms ]]; then
_pip_installed
_requested installed_pkgs expl 'installed packages' compadd -a installed_pkgs
search)
_arguments \
'(--index)--index[base URL of Python Package Index]' ;;
freeze)
_arguments \
'(-l --local)'{-l,--local}'[report only virtualenv packages]' ;;
install)
_arguments \
'(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
'(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
'(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \
'(--no-install)--no-install[only download packages]' \
'(--no-download)--no-download[only install downloaded packages]' \
'(--install-option)--install-option[extra arguments to be supplied to the setup.py]' \
'1: :->packages' && return 0
if [[ "$state" == packages ]]; then
_pip_all
_wanted piplist expl 'packages' compadd -a piplist
fi ;;
uninstall)
_pip_installed

View file

@ -17,3 +17,5 @@ alias rp='_rails_command plugin'
alias rs='_rails_command server'
alias rsd='_rails_command server --debugger'
alias devlog='tail -f log/development.log'
alias rdm='rake db:migrate'
alias rdr='rake db:rollback'

View file

@ -0,0 +1,13 @@
# Symfony2 basic command completion
_symfony2_get_command_list () {
app/console --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
}
_symfony2 () {
if [ -f app/console ]; then
compadd `_symfony2_get_command_list`
fi
}
compdef _symfony2 app/console

29
plugins/wakeonlan/README Normal file
View file

@ -0,0 +1,29 @@
This plugin provides a wrapper around the "wakeonlan" tool available from most
distributions' package repositories, or from the following website:
http://gsd.di.uminho.pt/jpo/software/wakeonlan/
In order to use this wrapper, create the ~/.wakeonlan directory, and place in
that directory one file for each device you would like to be able to wake. Give
the file a name that describes the device, such as its hostname. Each file
should contain a line with the mac address of the target device and the network
broadcast address.
For instance, there might be a file ~/.wakeonlan/leto with the following
contents:
00:11:22:33:44:55:66 192.168.0.255
To wake that device, use the following command:
# wake leto
The available device names will be autocompleted, so:
# wake <tab>
...will suggest "leto", along with any other configuration files that were
placed in the ~/.wakeonlan directory.
For more information regarding the configuration file format, check the
wakeonlan man page.

4
plugins/wakeonlan/_wake Normal file
View file

@ -0,0 +1,4 @@
#compdef wake
#autoload
_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0

View file

@ -0,0 +1,14 @@
function wake() {
local config_file="$HOME/.wakeonlan/$1"
if [[ ! -f "$config_file" ]]; then
echo "ERROR: There is no configuration file at \"$config_file\"."
return 1
fi
if (( ! $+commands[wakeonlan] )); then
echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?"
return 1
fi
wakeonlan -f "$config_file"
}