Sorin Ionescu
13 years ago
66 changed files with 905 additions and 1777 deletions
@ -1,6 +0,0 @@ |
|||||||
# commands to control local apache2 server installation |
|
||||||
# paths are for osx installation via macports |
|
||||||
|
|
||||||
alias apache2start='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start' |
|
||||||
alias apache2stop='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop' |
|
||||||
alias apache2restart='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart' |
|
@ -1,76 +0,0 @@ |
|||||||
# Archlinux zsh aliases and functions |
|
||||||
# Usage is also described at https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins |
|
||||||
|
|
||||||
# Look for yaourt, and add some useful functions if we have it. |
|
||||||
if [[ -x `which yaourt` ]]; then |
|
||||||
upgrade () { |
|
||||||
yaourt -Syu |
|
||||||
} |
|
||||||
alias yaconf='yaourt -C' # Fix all configuration files with vimdiff |
|
||||||
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips |
|
||||||
alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. |
|
||||||
alias yain='yaourt -S' # Install specific package(s) from the repositories |
|
||||||
alias yains='yaourt -U' # Install specific package not from the repositories but from a file |
|
||||||
alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies |
|
||||||
alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies |
|
||||||
alias yarep='yaourt -Si' # Display information about a given package in the repositories |
|
||||||
alias yareps='yaourt -Ss' # Search for package(s) in the repositories |
|
||||||
alias yaloc='yaourt -Qi' # Display information about a given package in the local database |
|
||||||
alias yalocs='yaourt -Qs' # Search for package(s) in the local database |
|
||||||
# Additional yaourt alias examples |
|
||||||
if [[ -x `which abs` ]]; then |
|
||||||
alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories |
|
||||||
else |
|
||||||
alias yaupd='yaourt -Sy' # Update and refresh the local package and ABS databases against repositories |
|
||||||
fi |
|
||||||
alias yainsd='yaourt -S --asdeps' # Install given package(s) as dependencies of another package |
|
||||||
alias yamir='yaourt -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist |
|
||||||
else |
|
||||||
upgrade() { |
|
||||||
sudo pacman -Syu |
|
||||||
} |
|
||||||
fi |
|
||||||
|
|
||||||
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips |
|
||||||
alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. |
|
||||||
alias pacin='sudo pacman -S' # Install specific package(s) from the repositories |
|
||||||
alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file |
|
||||||
alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies |
|
||||||
alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies |
|
||||||
alias pacrep='pacman -Si' # Display information about a given package in the repositories |
|
||||||
alias pacreps='pacman -Ss' # Search for package(s) in the repositories |
|
||||||
alias pacloc='pacman -Qi' # Display information about a given package in the local database |
|
||||||
alias paclocs='pacman -Qs' # Search for package(s) in the local database |
|
||||||
# Additional pacman alias examples |
|
||||||
if [[ -x `which abs` ]]; then |
|
||||||
alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories |
|
||||||
else |
|
||||||
alias pacupd='sudo pacman -Sy' # Update and refresh the local package and ABS databases against repositories |
|
||||||
fi |
|
||||||
alias pacinsd='sudo pacman -S --asdeps' # Install given package(s) as dependencies of another package |
|
||||||
alias pacmir='sudo pacman -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist |
|
||||||
|
|
||||||
# https://bbs.archlinux.org/viewtopic.php?id=93683 |
|
||||||
paclist() { |
|
||||||
sudo pacman -Qei $(pacman -Qu|cut -d" " -f 1)|awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' |
|
||||||
} |
|
||||||
|
|
||||||
alias paclsorphans='sudo pacman -Qdt' |
|
||||||
alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' |
|
||||||
|
|
||||||
pacdisowned() { |
|
||||||
tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ |
|
||||||
db=$tmp/db |
|
||||||
fs=$tmp/fs |
|
||||||
|
|
||||||
mkdir "$tmp" |
|
||||||
trap 'rm -rf "$tmp"' EXIT |
|
||||||
|
|
||||||
pacman -Qlq | sort -u > "$db" |
|
||||||
|
|
||||||
find /bin /etc /lib /sbin /usr \ |
|
||||||
! -name lost+found \ |
|
||||||
\( -type d -printf '%p/\n' -o -print \) | sort > "$fs" |
|
||||||
|
|
||||||
comm -23 "$fs" "$db" |
|
||||||
} |
|
@ -1,3 +1,8 @@ |
|||||||
if [ -f `brew --prefix`/etc/autojump ]; then |
if [[ -f /etc/profile.d/autojump.zsh ]]; then |
||||||
. `brew --prefix`/etc/autojump |
source /etc/profile.d/autojump.zsh |
||||||
|
elif [[ -f /opt/local/etc/profile.d/autojump.zsh ]]; then |
||||||
|
source /opt/local/etc/profile.d/autojump.zsh |
||||||
|
elif [[ -f "$(brew --prefix 2> /dev/null)/etc/autojump.zsh" ]]; then |
||||||
|
source "$(brew --prefix)/etc/autojump.zsh" |
||||||
fi |
fi |
||||||
|
|
||||||
|
@ -1,80 +0,0 @@ |
|||||||
#compdef brew |
|
||||||
#autoload |
|
||||||
|
|
||||||
# imported from the latest homebrew contributions |
|
||||||
|
|
||||||
_brew_all_formulae() { |
|
||||||
formulae=(`brew search`) |
|
||||||
} |
|
||||||
|
|
||||||
_brew_installed_formulae() { |
|
||||||
installed_formulae=(`brew list`) |
|
||||||
} |
|
||||||
|
|
||||||
local -a _1st_arguments |
|
||||||
_1st_arguments=( |
|
||||||
'cat:display formula file for a formula' |
|
||||||
'cleanup:uninstall unused and old versions of packages' |
|
||||||
'create:create a new formula' |
|
||||||
'deps:list dependencies and dependants of a formula' |
|
||||||
'doctor:audits your installation for common issues' |
|
||||||
'edit:edit a formula' |
|
||||||
'home:visit the homepage of a formula or the brew project' |
|
||||||
'info:information about a formula' |
|
||||||
'install:install a formula' |
|
||||||
'link:link a formula' |
|
||||||
'list:list files in a formula or not-installed formulae' |
|
||||||
'log:git commit log for a formula' |
|
||||||
'missing:check all installed formuale for missing dependencies.' |
|
||||||
'outdated:list formulas for which a newer version is available' |
|
||||||
'prune:remove dead links' |
|
||||||
'remove:remove a formula' |
|
||||||
'search:search for a formula (/regex/ or string)' |
|
||||||
'server:start a local web app that lets you browse formulae (requires Sinatra)' |
|
||||||
'unlink:unlink a formula' |
|
||||||
'update:freshen up links' |
|
||||||
'upgrade:upgrade outdated formulae' |
|
||||||
'uses:show formulas which depend on a formula' |
|
||||||
) |
|
||||||
|
|
||||||
local expl |
|
||||||
local -a formulae installed_formulae |
|
||||||
|
|
||||||
_arguments \ |
|
||||||
'(-v)-v[verbose]' \ |
|
||||||
'(--cellar)--cellar[brew cellar]' \ |
|
||||||
'(--config)--config[brew configuration]' \ |
|
||||||
'(--env)--env[brew environment]' \ |
|
||||||
'(--repository)--repository[brew repository]' \ |
|
||||||
'(--version)--version[version information]' \ |
|
||||||
'(--prefix)--prefix[where brew lives on this system]' \ |
|
||||||
'(--cache)--cache[brew cache]' \ |
|
||||||
'*:: :->subcmds' && return 0 |
|
||||||
|
|
||||||
if (( CURRENT == 1 )); then |
|
||||||
_describe -t commands "brew subcommand" _1st_arguments |
|
||||||
return |
|
||||||
fi |
|
||||||
|
|
||||||
case "$words[1]" in |
|
||||||
search|-S) |
|
||||||
_arguments \ |
|
||||||
'(--macports)--macports[search the macports repository]' \ |
|
||||||
'(--fink)--fink[search the fink repository]' ;; |
|
||||||
list|ls) |
|
||||||
_arguments \ |
|
||||||
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \ |
|
||||||
'(--versions)--versions[list all installed versions of a formula]' \ |
|
||||||
'1: :->forms' && return 0 |
|
||||||
|
|
||||||
if [[ "$state" == forms ]]; then |
|
||||||
_brew_installed_formulae |
|
||||||
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae |
|
||||||
fi ;; |
|
||||||
install|home|homepage|log|info|abv|uses|cat|deps|edit|options) |
|
||||||
_brew_all_formulae |
|
||||||
_wanted formulae expl 'all formulae' compadd -a formulae ;; |
|
||||||
remove|rm|uninstall|unlink|cleanup|link|ln) |
|
||||||
_brew_installed_formulae |
|
||||||
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;; |
|
||||||
esac |
|
@ -1 +1,19 @@ |
|||||||
|
# Complete brew. |
||||||
|
completion_file="${0:h}/_brew" |
||||||
|
if [[ ! -e "$completion_file" ]]; then |
||||||
|
if [[ -L "$completion_file" ]]; then |
||||||
|
unlink "$completion_file" 2> /dev/null |
||||||
|
fi |
||||||
|
|
||||||
|
if (( $+commands[brew] )); then |
||||||
|
ln -s \ |
||||||
|
"$(brew --prefix)/Library/Contributions/brew_zsh_completion.zsh" \ |
||||||
|
"$completion_file" \ |
||||||
|
2> /dev/null |
||||||
|
fi |
||||||
|
fi |
||||||
|
unset completion_file |
||||||
|
|
||||||
|
# Aliases |
||||||
alias brews='brew list -1' |
alias brews='brew list -1' |
||||||
|
|
||||||
|
@ -1,32 +1,33 @@ |
|||||||
# Set this to 1 if you want to cache the tasks |
# Set this to 1 if you want to cache the tasks. |
||||||
cache_task_list=1 |
cache_task_list=1 |
||||||
|
|
||||||
# Cache filename |
# Cache filename. |
||||||
cache_file='.cake_task_cache' |
cache_file='.cake_task_cache' |
||||||
|
|
||||||
_cake_does_target_list_need_generating () { |
function _cake_does_target_list_need_generating() { |
||||||
|
if [[ $cache_task_list -eq 0 ]]; then |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
if [ $cache_task_list -eq 0 ]; then |
if [[ ! -f $cache_file ]]; then |
||||||
return 1; |
return 0 |
||||||
fi |
else |
||||||
|
accurate=$(stat -f%m $cache_file) |
||||||
if [ ! -f $cache_file ]; then return 0; |
changed=$(stat -f%m Cakefile) |
||||||
else |
return $(expr $accurate '>=' $changed) |
||||||
accurate=$(stat -f%m $cache_file) |
fi |
||||||
changed=$(stat -f%m Cakefile) |
|
||||||
return $(expr $accurate '>=' $changed) |
|
||||||
fi |
|
||||||
} |
} |
||||||
|
|
||||||
_cake () { |
function _cake() { |
||||||
if [ -f Cakefile ]; then |
if [[ -f Cakefile ]]; then |
||||||
if _cake_does_target_list_need_generating; then |
if _cake_does_target_list_need_generating; then |
||||||
cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cache_file |
cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cache_file |
||||||
compadd `cat $cache_file` |
compadd `cat $cache_file` |
||||||
else |
else |
||||||
compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'` |
compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'` |
||||||
fi |
fi |
||||||
fi |
fi |
||||||
} |
} |
||||||
|
|
||||||
compdef _cake cake |
compdef _cake cake |
||||||
|
|
||||||
|
@ -1,21 +0,0 @@ |
|||||||
function _cap_does_task_list_need_generating () { |
|
||||||
if [ ! -f .cap_tasks~ ]; then return 0; |
|
||||||
else |
|
||||||
accurate=$(stat -f%m .cap_tasks~) |
|
||||||
changed=$(stat -f%m config/deploy.rb) |
|
||||||
return $(expr $accurate '>=' $changed) |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
function _cap () { |
|
||||||
if [ -f config/deploy.rb ]; then |
|
||||||
if _cap_does_task_list_need_generating; then |
|
||||||
echo "\nGenerating .cap_tasks~..." > /dev/stderr |
|
||||||
cap show_tasks -q | cut -d " " -f 1 | sed -e '/^ *$/D' -e '1,2D' |
|
||||||
> .cap_tasks~ |
|
||||||
fi |
|
||||||
compadd `cat .cap_tasks~` |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
compctl -K _cap cap |
|
@ -0,0 +1,20 @@ |
|||||||
|
#compdef cap |
||||||
|
#autoload |
||||||
|
|
||||||
|
function _cap-does-task-list-need-generating() { |
||||||
|
if [[ ! -f .cap_tasks~ ]]; then return 0; |
||||||
|
else |
||||||
|
accurate=$(stat -f%m .cap_tasks~) |
||||||
|
changed=$(stat -f%m config/deploy.rb) |
||||||
|
return $(expr $accurate '>=' $changed) |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
if [[ -f config/deploy.rb ]]; then |
||||||
|
if _cap-does-task-list-need-generating; then |
||||||
|
echo "\nGenerating .cap_tasks~..." > /dev/stderr |
||||||
|
cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ |
||||||
|
fi |
||||||
|
compadd $(cat .cap_tasks~) |
||||||
|
fi |
||||||
|
|
@ -0,0 +1,191 @@ |
|||||||
|
#compdef knife |
||||||
|
|
||||||
|
# These flags should be available everywhere according to the knife man page. |
||||||
|
knife_general_flags=( |
||||||
|
--help |
||||||
|
--server-url |
||||||
|
--key |
||||||
|
--config |
||||||
|
--editor |
||||||
|
--format |
||||||
|
--log_level |
||||||
|
--logfile |
||||||
|
--no-editor |
||||||
|
--user |
||||||
|
--print-after |
||||||
|
--version |
||||||
|
--yes |
||||||
|
) |
||||||
|
|
||||||
|
# Knife has a very special syntax, some example calls are: |
||||||
|
# knife status |
||||||
|
# knife cookbook list |
||||||
|
# knife role show ROLENAME |
||||||
|
# knife data bag show DATABAGNAME |
||||||
|
# knife role show ROLENAME --attribute ATTRIBUTENAME |
||||||
|
# knife cookbook show COOKBOOKNAME COOKBOOKVERSION recipes |
||||||
|
|
||||||
|
# The -Q switch in compadd allows for completion of things like "data bag" without |
||||||
|
# having to go through two rounds of completion and avoids ZSH inserting a '\' for |
||||||
|
# escaping spaces. |
||||||
|
function _knife() { |
||||||
|
local curcontext="$curcontext" state line |
||||||
|
typeset -A opt_args |
||||||
|
cloudproviders=(bluebox ec2 rackspace slicehost terremark) |
||||||
|
_arguments \ |
||||||
|
'1: :->knifecmd'\ |
||||||
|
'2: :->knifesubcmd'\ |
||||||
|
'3: :->knifesubcmd2' \ |
||||||
|
'4: :->knifesubcmd3' \ |
||||||
|
'5: :->knifesubcmd4' \ |
||||||
|
'6: :->knifesubcmd5' |
||||||
|
|
||||||
|
case $state in |
||||||
|
(knifecmd) |
||||||
|
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec index node recipe role search ssh status windows $cloudproviders |
||||||
|
;; |
||||||
|
(knifesubcmd) |
||||||
|
case $words[2] in |
||||||
|
(bluebox|ec2|rackspace|slicehost|terremark) |
||||||
|
compadd "$@" server images |
||||||
|
;; |
||||||
|
(client) |
||||||
|
compadd -Q "$@" "bulk delete" list create show delete edit reregister |
||||||
|
;; |
||||||
|
(configure) |
||||||
|
compadd "$@" client |
||||||
|
;; |
||||||
|
(cookbook) |
||||||
|
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload |
||||||
|
;; |
||||||
|
(node) |
||||||
|
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete" |
||||||
|
;; |
||||||
|
(recipe) |
||||||
|
compadd "$@" list |
||||||
|
;; |
||||||
|
(role) |
||||||
|
compadd -Q "$@" "bulk delete" create delete edit "from file" list show |
||||||
|
;; |
||||||
|
(windows) |
||||||
|
compadd "$@" bootstrap |
||||||
|
;; |
||||||
|
(*) |
||||||
|
_arguments '2:Subsubcommands:($(_knife_options1))' |
||||||
|
esac |
||||||
|
;; |
||||||
|
(knifesubcmd2) |
||||||
|
case $words[3] in |
||||||
|
(server) |
||||||
|
compadd "$@" list create delete |
||||||
|
;; |
||||||
|
(images) |
||||||
|
compadd "$@" list |
||||||
|
;; |
||||||
|
(site) |
||||||
|
compadd "$@" vendor show share search download list unshare |
||||||
|
;; |
||||||
|
(show|delete|edit) |
||||||
|
_arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))' |
||||||
|
;; |
||||||
|
(upload|test) |
||||||
|
_arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)' |
||||||
|
;; |
||||||
|
(list) |
||||||
|
compadd -a "$@" knife_general_flags |
||||||
|
;; |
||||||
|
(bag) |
||||||
|
compadd -Q "$@" show edit list "from file" create delete |
||||||
|
;; |
||||||
|
(*) |
||||||
|
_arguments '3:Subsubcommands:($(_knife_options2))' |
||||||
|
esac |
||||||
|
;; |
||||||
|
(knifesubcmd3) |
||||||
|
case $words[3] in |
||||||
|
(show) |
||||||
|
case $words[2] in |
||||||
|
(cookbook) |
||||||
|
versioncomp=1 |
||||||
|
_arguments '4:Cookbookversions:($(_cookbook_versions) latest)' |
||||||
|
;; |
||||||
|
(node|client|role) |
||||||
|
compadd "$@" --attribute |
||||||
|
esac |
||||||
|
esac |
||||||
|
case $words[4] in |
||||||
|
(show|edit) |
||||||
|
_arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))' |
||||||
|
;; |
||||||
|
(file) |
||||||
|
_arguments '*:file or directory:_files -g "*.(rb|json)"' |
||||||
|
;; |
||||||
|
(list) |
||||||
|
compadd -a "$@" knife_general_flags |
||||||
|
;; |
||||||
|
(*) |
||||||
|
_arguments '*:Subsubcommands:($(_knife_options3))' |
||||||
|
esac |
||||||
|
;; |
||||||
|
(knifesubcmd4) |
||||||
|
if (( versioncomp > 0 )); then |
||||||
|
compadd "$@" attributes definitions files libraries providers recipes resources templates |
||||||
|
else |
||||||
|
_arguments '*:Subsubcommands:($(_knife_options2))' |
||||||
|
fi |
||||||
|
;; |
||||||
|
(knifesubcmd5) |
||||||
|
_arguments '*:Subsubcommands:($(_knife_options3))' |
||||||
|
esac |
||||||
|
} |
||||||
|
|
||||||
|
# Helper functions to provide the argument completion for several depths of commands |
||||||
|
function _knife_options1() { |
||||||
|
( for line in $( knife $words[2] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) |
||||||
|
} |
||||||
|
|
||||||
|
function _knife_options2() { |
||||||
|
( for line in $( knife $words[2] $words[3] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) |
||||||
|
} |
||||||
|
|
||||||
|
function _knife_options3() { |
||||||
|
( for line in $( knife $words[2] $words[3] $words[4] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) |
||||||
|
} |
||||||
|
|
||||||
|
# The chef_x_remote functions use knife to get a list of objects of type x on the server |
||||||
|
function _chef_roles_remote() { |
||||||
|
(knife role list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
||||||
|
} |
||||||
|
|
||||||
|
function _chef_clients_remote() { |
||||||
|
(knife client list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
||||||
|
} |
||||||
|
|
||||||
|
function _chef_nodes_remote() { |
||||||
|
(knife node list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
||||||
|
} |
||||||
|
|
||||||
|
function _chef_cookbooks_remote() { |
||||||
|
(knife cookbook list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
||||||
|
} |
||||||
|
|
||||||
|
function _chef_sitecookbooks_remote() { |
||||||
|
(knife cookbook site list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
||||||
|
} |
||||||
|
|
||||||
|
function _chef_data_bags_remote() { |
||||||
|
(knife data bag list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
||||||
|
} |
||||||
|
|
||||||
|
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server |
||||||
|
function _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) |
||||||
|
} |
||||||
|
|
||||||
|
# This function extracts the available cookbook versions on the chef server |
||||||
|
function _cookbook_versions() { |
||||||
|
(knife cookbook show $words[4] | grep -v $words[4] | grep -v -E '\]|\[|\{|\}' | sed 's/ //g' | sed 's/"//g') |
||||||
|
} |
||||||
|
|
||||||
|
function _knife "$@" |
||||||
|
|
@ -1,2 +0,0 @@ |
|||||||
alias cloudapp="${0:r:r}.rb" |
|
||||||
|
|
@ -1,60 +0,0 @@ |
|||||||
#!/usr/bin/env ruby |
|
||||||
# |
|
||||||
# cloudapp |
|
||||||
# Zach Holman / @holman |
|
||||||
# |
|
||||||
# Uploads a file from the command line to CloudApp, drops it into your |
|
||||||
# clipboard (on a Mac, at least). |
|
||||||
# |
|
||||||
# Example: |
|
||||||
# |
|
||||||
# cloudapp drunk-blake.png |
|
||||||
# |
|
||||||
# This requires Aaron Russell's cloudapp_api gem: |
|
||||||
# |
|
||||||
# gem install cloudapp_api |
|
||||||
# |
|
||||||
# Requires you set your CloudApp credentials in ~/.cloudapp as a simple file of: |
|
||||||
# |
|
||||||
# email |
|
||||||
# password |
|
||||||
|
|
||||||
require 'rubygems' |
|
||||||
begin |
|
||||||
require 'cloudapp_api' |
|
||||||
rescue LoadError |
|
||||||
puts "You need to install cloudapp_api: gem install cloudapp_api" |
|
||||||
exit!(1) |
|
||||||
end |
|
||||||
|
|
||||||
config_file = "#{ENV['HOME']}/.cloudapp" |
|
||||||
unless File.exist?(config_file) |
|
||||||
puts "You need to type your email and password (one per line) into "+ |
|
||||||
"`~/.cloudapp`" |
|
||||||
exit!(1) |
|
||||||
end |
|
||||||
|
|
||||||
email,password = File.read(config_file).split("\n") |
|
||||||
|
|
||||||
class HTTParty::Response |
|
||||||
# Apparently HTTPOK.ok? IS NOT OKAY WTFFFFFFFFFFUUUUUUUUUUUUUU |
|
||||||
# LETS MONKEY PATCH IT I FEEL OKAY ABOUT IT |
|
||||||
def ok? ; true end |
|
||||||
end |
|
||||||
|
|
||||||
if ARGV[0].nil? |
|
||||||
puts "You need to specify a file to upload." |
|
||||||
exit!(1) |
|
||||||
end |
|
||||||
|
|
||||||
CloudApp.authenticate(email,password) |
|
||||||
url = CloudApp::Item.create(:upload, {:file => ARGV[0]}).url |
|
||||||
|
|
||||||
# Say it for good measure. |
|
||||||
puts "Uploaded to #{url}." |
|
||||||
|
|
||||||
# Get the embed link. |
|
||||||
url = "#{url}/#{ARGV[0].split('/').last}" |
|
||||||
|
|
||||||
# Copy it to your (Mac's) clipboard. |
|
||||||
`echo '#{url}' | tr -d "\n" | pbcopy` |
|
@ -1,13 +0,0 @@ |
|||||||
# Aliases |
|
||||||
alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \ |
|
||||||
--no-gui --disable-columns search" # search package |
|
||||||
alias ad="sudo apt-get update" # update packages lists |
|
||||||
alias au="sudo apt-get update && \ |
|
||||||
sudo apt-get dselect-upgrade" # upgrade packages |
|
||||||
alias ai="sudo apt-get install" # install package |
|
||||||
alias ar="sudo apt-get remove --purge && \ |
|
||||||
sudo apt-get autoremove --purge" # remove package |
|
||||||
alias ap="apt-cache policy" # apt policy |
|
||||||
alias av="apt-cache show" # show package info |
|
||||||
alias acs="apt-cache search" # search package |
|
||||||
alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache |
|
@ -1,60 +0,0 @@ |
|||||||
# https://github.com/dbbolton/ |
|
||||||
# |
|
||||||
# Debian-related zsh aliases and functions for zsh |
|
||||||
|
|
||||||
|
|
||||||
# Aliases ################################################################### |
|
||||||
|
|
||||||
# Some self-explanatory aliases |
|
||||||
alias afs='apt-file search --regexp' |
|
||||||
alias aps='aptitude search' |
|
||||||
alias apsrc='apt-get source' |
|
||||||
alias apv='apt-cache policy' |
|
||||||
|
|
||||||
alias apdg='su -c "aptitude update && aptitude safe-upgrade"' |
|
||||||
alias apud='su -c "aptitude update"' |
|
||||||
alias apug='su -c "aptitude safe-upgrade"' |
|
||||||
|
|
||||||
# print all installed packages |
|
||||||
alias allpkgs='aptitude search -F "%p" --disable-columns ~i' |
|
||||||
|
|
||||||
# Install all .deb files in the current directory. |
|
||||||
# Warning: you will need to put the glob in single quotes if you use: |
|
||||||
# glob_subst |
|
||||||
alias di='su -c "dpkg -i ./*.deb"' |
|
||||||
|
|
||||||
# Create a basic .deb package |
|
||||||
alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' |
|
||||||
|
|
||||||
# Remove ALL kernel images and headers EXCEPT the one in use |
|
||||||
alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Functions ################################################################# |
|
||||||
|
|
||||||
# create a simple script that can be used to 'duplicate' a system |
|
||||||
apt-copy() { |
|
||||||
print '#!/bin/sh'"\n" > apt-copy.sh |
|
||||||
|
|
||||||
list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;') |
|
||||||
|
|
||||||
print 'aptitude install '"$list\n" >> apt-copy.sh |
|
||||||
|
|
||||||
chmod +x apt-copy.sh |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
# Kernel-package building shortcut |
|
||||||
dbb-build () { |
|
||||||
MAKEFLAGS='' # temporarily unset MAKEFLAGS ( '-j3' will fail ) |
|
||||||
appendage='-custom' # this shows up in $ (uname -r ) |
|
||||||
revision=$(date +"%Y%m%d") # this shows up in the .deb file name |
|
||||||
|
|
||||||
make-kpkg clean |
|
||||||
|
|
||||||
time fakeroot make-kpkg --append-to-version "$appendage" --revision \ |
|
||||||
"$revision" kernel_image kernel_headers |
|
||||||
} |
|
||||||
|
|
||||||
|
|
@ -1,39 +0,0 @@ |
|||||||
#!/bin/zsh |
|
||||||
# |
|
||||||
# Make the dirstack more persistant |
|
||||||
# |
|
||||||
# Add dirpersist to $plugins in ~/.zshrc to load |
|
||||||
# |
|
||||||
|
|
||||||
# $zdirstore is the file used to persist the stack |
|
||||||
zdirstore=~/.zdirstore |
|
||||||
|
|
||||||
dirpersistinstall () { |
|
||||||
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then |
|
||||||
else |
|
||||||
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then |
|
||||||
echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout |
|
||||||
else |
|
||||||
echo "If you don't want this message to appear, remove dirspersist from \$plugins" |
|
||||||
fi |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
dirpersiststore () { |
|
||||||
dirs -p | perl -e 'foreach (reverse <STDIN>) {chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"}' > $zdirstore |
|
||||||
} |
|
||||||
|
|
||||||
dirpersistrestore () { |
|
||||||
if [ -f $zdirstore ]; then |
|
||||||
source $zdirstore |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
DIRSTACKSIZE=10 |
|
||||||
setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups |
|
||||||
|
|
||||||
dirpersistinstall |
|
||||||
dirpersistrestore |
|
||||||
|
|
||||||
# Make popd changes permanent without having to wait for logout |
|
||||||
alias popd="popd;dirpersiststore" |
|
@ -1,222 +0,0 @@ |
|||||||
#compdef manage.py |
|
||||||
|
|
||||||
typeset -ga nul_args |
|
||||||
nul_args=( |
|
||||||
'--settings=-[the Python path to a settings module.]:file:_files' |
|
||||||
'--pythonpath=-[a directory to add to the Python path.]::directory:_directories' |
|
||||||
'--traceback[print traceback on exception.]' |
|
||||||
"--version[show program's version number and exit.]" |
|
||||||
{-h,--help}'[show this help message and exit.]' |
|
||||||
) |
|
||||||
|
|
||||||
_managepy-adminindex(){ |
|
||||||
_arguments -s : \ |
|
||||||
$nul_args \ |
|
||||||
'*::directory:_directories' && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-createcachetable(){ |
|
||||||
_arguments -s : \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-dbshell(){ |
|
||||||
_arguments -s : \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-diffsettings(){ |
|
||||||
_arguments -s : \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-dumpdata(){ |
|
||||||
_arguments -s : \ |
|
||||||
'--format=-[specifies the output serialization format for fixtures.]:format:(json yaml xml)' \ |
|
||||||
'--indent=-[specifies the indent level to use when pretty-printing output.]:' \ |
|
||||||
$nul_args \ |
|
||||||
'*::appname:_applist' && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-flush(){ |
|
||||||
_arguments -s : \ |
|
||||||
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ |
|
||||||
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-help(){ |
|
||||||
_arguments -s : \ |
|
||||||
'*:command:_managepy_cmds' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy_cmds(){ |
|
||||||
local line |
|
||||||
local -a cmd |
|
||||||
_call_program help-command ./manage.py help \ |
|
||||||
|& sed -n '/^ /s/[(), ]/ /gp' \ |
|
||||||
| while read -A line; do cmd=($line $cmd) done |
|
||||||
_describe -t managepy-command 'manage.py command' cmd |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-inspectdb(){ |
|
||||||
_arguments -s : \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-loaddata(){ |
|
||||||
_arguments -s : \ |
|
||||||
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ |
|
||||||
'*::file:_files' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-reset(){ |
|
||||||
_arguments -s : \ |
|
||||||
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ |
|
||||||
'*::appname:_applist' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-runfcgi(){ |
|
||||||
local state |
|
||||||
|
|
||||||
local fcgi_opts |
|
||||||
fcgi_opts=( |
|
||||||
'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)' |
|
||||||
'host[hostname to listen on..]:' |
|
||||||
'port[port to listen on.]:' |
|
||||||
'socket[UNIX socket to listen on.]::file:_files' |
|
||||||
'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).]:' |
|
||||||
'maxspare[max number of spare processes / threads.]:' |
|
||||||
'minspare[min number of spare processes / threads.]:' |
|
||||||
'maxchildren[hard limit number of processes / threads.]:' |
|
||||||
'daemonize[whether to detach from terminal.]:boolean:(False True)' |
|
||||||
'pidfile[write the spawned process-id to this file.]:file:_files' |
|
||||||
'workdir[change to this directory when daemonizing.]:directory:_files' |
|
||||||
'outlog[write stdout to this file.]:file:_files' |
|
||||||
'errlog[write stderr to this file.]:file:_files' |
|
||||||
) |
|
||||||
|
|
||||||
_arguments -s : \ |
|
||||||
$nul_args \ |
|
||||||
'*: :_values "FCGI Setting" $fcgi_opts' && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-runserver(){ |
|
||||||
_arguments -s : \ |
|
||||||
'--noreload[tells Django to NOT use the auto-reloader.]' \ |
|
||||||
'--adminmedia[specifies the directory from which to serve admin media.]:directory:_files' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-shell(){ |
|
||||||
_arguments -s : \ |
|
||||||
'--plain[tells Django to use plain Python, not IPython.]' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-sql(){} |
|
||||||
_managepy-sqlall(){} |
|
||||||
_managepy-sqlclear(){} |
|
||||||
_managepy-sqlcustom(){} |
|
||||||
_managepy-sqlflush(){} |
|
||||||
_managepy-sqlindexes(){} |
|
||||||
_managepy-sqlinitialdata(){} |
|
||||||
_managepy-sqlreset(){} |
|
||||||
_managepy-sqlsequencereset(){} |
|
||||||
_managepy-startapp(){} |
|
||||||
|
|
||||||
_managepy-syncdb() { |
|
||||||
_arguments -s : \ |
|
||||||
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ |
|
||||||
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-test() { |
|
||||||
_arguments -s : \ |
|
||||||
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \ |
|
||||||
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \ |
|
||||||
'*::appname:_applist' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-testserver() { |
|
||||||
_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.]' \ |
|
||||||
'*::fixture:_files' \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-validate() { |
|
||||||
_arguments -s : \ |
|
||||||
$nul_args && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy-commands() { |
|
||||||
local -a commands |
|
||||||
|
|
||||||
commands=( |
|
||||||
'adminindex:prints the admin-index template snippet for the given app name(s).' |
|
||||||
'createcachetable:creates the table needed to use the SQL cache backend.' |
|
||||||
'dbshell:runs the command-line client for the current DATABASE_ENGINE.' |
|
||||||
"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.' |
|
||||||
'flush:Executes ``sqlflush`` on the current database.' |
|
||||||
'help:manage.py help.' |
|
||||||
'inspectdb:Introspects the database tables in the given database and outputs a Django model module.' |
|
||||||
'loaddata:Installs the named fixture(s) in the database.' |
|
||||||
'reset:Executes ``sqlreset`` for the given app(s) in the current database.' |
|
||||||
'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,' |
|
||||||
'runserver:Starts a lightweight Web server for development.' |
|
||||||
'shell:Runs a Python interactive interpreter.' |
|
||||||
'sql:Prints the CREATE TABLE SQL statements for the given app 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).' |
|
||||||
'sqlcustom:Prints the custom table modifying SQL statements for the given app 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.' |
|
||||||
'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).' |
|
||||||
"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).' |
|
||||||
"startapp:Creates a Django app directory structure for the given app name in this project's directory." |
|
||||||
"syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." |
|
||||||
'test:Runs the test suite for the specified applications, or the entire site if no apps are specified.' |
|
||||||
'testserver:Runs a development server with data from the given fixture(s).' |
|
||||||
'validate:Validates all installed models.' |
|
||||||
) |
|
||||||
|
|
||||||
_describe -t commands 'manage.py command' commands && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_applist() { |
|
||||||
local line |
|
||||||
local -a apps |
|
||||||
_call_program help-command "python -c \"import os.path as op, re, django.conf, sys;\\ |
|
||||||
bn=op.basename(op.abspath(op.curdir));[sys\\ |
|
||||||
.stdout.write(str(re.sub(r'^%s\.(.*?)$' % |
|
||||||
bn, r'\1', i)) + '\n') for i in django.conf.settings.\\ |
|
||||||
INSTALLED_APPS if re.match(r'^%s' % bn, i)]\"" \ |
|
||||||
| while read -A line; do apps=($line $apps) done |
|
||||||
_values 'Application' $apps && ret=0 |
|
||||||
} |
|
||||||
|
|
||||||
_managepy() { |
|
||||||
local curcontext=$curcontext ret=1 |
|
||||||
|
|
||||||
if ((CURRENT == 2)); then |
|
||||||
_managepy-commands |
|
||||||
else |
|
||||||
shift words |
|
||||||
(( CURRENT -- )) |
|
||||||
curcontext="${curcontext%:*:*}:managepy-$words[1]:" |
|
||||||
_call_function ret _managepy-$words[1] |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
compdef _managepy manage.py |
|
||||||
compdef _managepy django |
|
@ -0,0 +1,49 @@ |
|||||||
|
# Debian ZSH Aliases and Functions |
||||||
|
|
||||||
|
# Aliases |
||||||
|
alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" --no-gui --disable-columns search" # Search package. |
||||||
|
alias ad="sudo apt-get update" # Update packages lists. |
||||||
|
alias au="sudo apt-get update && sudo apt-get dselect-upgrade" # Upgrade packages. |
||||||
|
alias ai="sudo apt-get install" # Install package. |
||||||
|
alias ar="sudo apt-get remove --purge && sudo apt-get autoremove --purge" # Remove package. |
||||||
|
alias ap="apt-cache policy" # Apt policy. |
||||||
|
alias av="apt-cache show" # Show package info. |
||||||
|
alias acs="apt-cache search" # Search package. |
||||||
|
alias ac="sudo apt-get clean && sudo apt-get autoclean" # Clean apt cache. |
||||||
|
alias afs='apt-file search --regexp' # Find file's packake. |
||||||
|
|
||||||
|
# Install all .deb files in the current directory. |
||||||
|
# WARNING: you will need to put the glob in single quotes if you use glob_subst. |
||||||
|
alias debi='su -c "dpkg -i ./*.deb"' |
||||||
|
|
||||||
|
# Create a basic .deb package. |
||||||
|
alias debc='time dpkg-buildpackage -rfakeroot -us -uc' |
||||||
|
|
||||||
|
# Remove ALL kernel images and headers EXCEPT the one in use. |
||||||
|
alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' |
||||||
|
|
||||||
|
# Functions |
||||||
|
|
||||||
|
# Create a simple script that can be used to 'duplicate' a system. |
||||||
|
function apt-copy() { |
||||||
|
print '#!/bin/sh'"\n" > apt-copy.sh |
||||||
|
|
||||||
|
list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;') |
||||||
|
|
||||||
|
print 'aptitude install '"$list\n" >> apt-copy.sh |
||||||
|
|
||||||
|
chmod +x apt-copy.sh |
||||||
|
} |
||||||
|
|
||||||
|
# Kernel-package building shortcut. |
||||||
|
function dbb-build() { |
||||||
|
MAKEFLAGS='' # Temporarily unset MAKEFLAGS ( '-j3' will fail ). |
||||||
|
appendage='-custom' # This shows up in $ (uname -r ). |
||||||
|
revision=$(date +"%Y%m%d") # This shows up in the .deb file name. |
||||||
|
|
||||||
|
make-kpkg clean |
||||||
|
|
||||||
|
time fakeroot make-kpkg --append-to-version "$appendage" --revision \ |
||||||
|
"$revision" kernel_image kernel_headers |
||||||
|
} |
||||||
|
|
@ -1,34 +1,36 @@ |
|||||||
#compdef gas |
#compdef gas |
||||||
|
#autoload |
||||||
|
|
||||||
local curcontext="$curcontext" state line cmds ret=1 |
local curcontext="$curcontext" state line cmds ret=1 |
||||||
|
|
||||||
_arguments -C \ |
_arguments -C \ |
||||||
'(- 1 *)'{-v,--version}'[display version information]' \ |
'(- 1 *)'{-v,--version}'[display version information]' \ |
||||||
'(-h|--help)'{-h,--help}'[show help information]' \ |
'(-h|--help)'{-h,--help}'[show help information]' \ |
||||||
'1: :->cmds' \ |
'1: :->cmds' \ |
||||||
'*: :->args' && ret=0 |
'*: :->args' && ret=0 |
||||||
|
|
||||||
case $state in |
case "$state" in |
||||||
cmds) |
(cmds) |
||||||
cmds=( |
cmds=( |
||||||
"version:Prints Gas's version" |
"version:Prints Gas's version" |
||||||
"use:Uses author" |
"use:Uses author" |
||||||
"show:Shows your current user" |
"show:Shows your current user" |
||||||
"list:Lists your authors" |
"list:Lists your authors" |
||||||
"import:Imports current user to gasconfig" |
"import:Imports current user to gasconfig" |
||||||
"help:Describe available tasks or one specific task" |
"help:Describe available tasks or one specific task" |
||||||
"delete:Deletes author" |
"delete:Deletes author" |
||||||
"add:Adds author to gasconfig" |
"add:Adds author to gasconfig" |
||||||
) |
) |
||||||
_describe -t commands 'gas command' cmds && ret=0 |
_describe -t commands 'gas command' cmds && ret=0 |
||||||
;; |
;; |
||||||
args) |
(args) |
||||||
case $line[1] in |
case "$line[1]" in |
||||||
(use|delete) |
(use|delete) |
||||||
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 |
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 |
||||||
;; |
;; |
||||||
esac |
esac |
||||||
;; |
;; |
||||||
esac |
esac |
||||||
|
|
||||||
return ret |
return ret |
||||||
|
|
||||||
|
@ -1,6 +1,10 @@ |
|||||||
# hub alias from defunkt |
# Aliases |
||||||
|
|
||||||
|
# Hub by defunkt |
||||||
# https://github.com/defunkt/hub |
# https://github.com/defunkt/hub |
||||||
if [ "$commands[(I)hub]" ]; then |
if (( $+commands[hub] )); then |
||||||
# eval `hub alias -s zsh` |
function git() { |
||||||
function git(){hub "$@"} |
hub "$@" |
||||||
|
} |
||||||
fi |
fi |
||||||
|
|
||||||
|
@ -1,9 +1,9 @@ |
|||||||
|
# Aliases |
||||||
|
alias kate='kate >/dev/null 2>&1' # Silent start. |
||||||
|
|
||||||
# Kate |
# Functions |
||||||
# Start kate always silent |
function kt() { |
||||||
alias kate='kate >/dev/null 2>&1' |
cd "$1" |
||||||
|
kate "$1" |
||||||
function kt () { |
|
||||||
cd $1 |
|
||||||
kate $1 |
|
||||||
} |
} |
||||||
|
|
||||||
|
@ -1,174 +0,0 @@ |
|||||||
#compdef knife |
|
||||||
|
|
||||||
# These flags should be available everywhere according to man knife |
|
||||||
knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes ) |
|
||||||
|
|
||||||
# knife has a very special syntax, some example calls are: |
|
||||||
# knife status |
|
||||||
# knife cookbook list |
|
||||||
# knife role show ROLENAME |
|
||||||
# knife data bag show DATABAGNAME |
|
||||||
# knife role show ROLENAME --attribute ATTRIBUTENAME |
|
||||||
# knife cookbook show COOKBOOKNAME COOKBOOKVERSION recipes |
|
||||||
|
|
||||||
# The -Q switch in compadd allow for completions of things like "data bag" without having to go through two rounds of completion and avoids zsh inserting a \ for escaping spaces |
|
||||||
_knife() { |
|
||||||
local curcontext="$curcontext" state line |
|
||||||
typeset -A opt_args |
|
||||||
cloudproviders=(bluebox ec2 rackspace slicehost terremark) |
|
||||||
_arguments \ |
|
||||||
'1: :->knifecmd'\ |
|
||||||
'2: :->knifesubcmd'\ |
|
||||||
'3: :->knifesubcmd2' \ |
|
||||||
'4: :->knifesubcmd3' \ |
|
||||||
'5: :->knifesubcmd4' \ |
|
||||||
'6: :->knifesubcmd5' |
|
||||||
|
|
||||||
case $state in |
|
||||||
knifecmd) |
|
||||||
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec index node recipe role search ssh status windows $cloudproviders |
|
||||||
;; |
|
||||||
knifesubcmd) |
|
||||||
case $words[2] in |
|
||||||
(bluebox|ec2|rackspace|slicehost|terremark) |
|
||||||
compadd "$@" server images |
|
||||||
;; |
|
||||||
client) |
|
||||||
compadd -Q "$@" "bulk delete" list create show delete edit reregister |
|
||||||
;; |
|
||||||
configure) |
|
||||||
compadd "$@" client |
|
||||||
;; |
|
||||||
cookbook) |
|
||||||
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload |
|
||||||
;; |
|
||||||
node) |
|
||||||
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete" |
|
||||||
;; |
|
||||||
recipe) |
|
||||||
compadd "$@" list |
|
||||||
;; |
|
||||||
role) |
|
||||||
compadd -Q "$@" "bulk delete" create delete edit "from file" list show |
|
||||||
;; |
|
||||||
windows) |
|
||||||
compadd "$@" bootstrap |
|
||||||
;; |
|
||||||
*) |
|
||||||
_arguments '2:Subsubcommands:($(_knife_options1))' |
|
||||||
esac |
|
||||||
;; |
|
||||||
knifesubcmd2) |
|
||||||
case $words[3] in |
|
||||||
server) |
|
||||||
compadd "$@" list create delete |
|
||||||
;; |
|
||||||
images) |
|
||||||
compadd "$@" list |
|
||||||
;; |
|
||||||
site) |
|
||||||
compadd "$@" vendor show share search download list unshare |
|
||||||
;; |
|
||||||
(show|delete|edit) |
|
||||||
_arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))' |
|
||||||
;; |
|
||||||
(upload|test) |
|
||||||
_arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)' |
|
||||||
;; |
|
||||||
list) |
|
||||||
compadd -a "$@" knife_general_flags |
|
||||||
;; |
|
||||||
bag) |
|
||||||
compadd -Q "$@" show edit list "from file" create delete |
|
||||||
;; |
|
||||||
*) |
|
||||||
_arguments '3:Subsubcommands:($(_knife_options2))' |
|
||||||
esac |
|
||||||
;; |
|
||||||
knifesubcmd3) |
|
||||||
case $words[3] in |
|
||||||
show) |
|
||||||
case $words[2] in |
|
||||||
cookbook) |
|
||||||
versioncomp=1 |
|
||||||
_arguments '4:Cookbookversions:($(_cookbook_versions) latest)' |
|
||||||
;; |
|
||||||
(node|client|role) |
|
||||||
compadd "$@" --attribute |
|
||||||
esac |
|
||||||
esac |
|
||||||
case $words[4] in |
|
||||||
(show|edit) |
|
||||||
_arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))' |
|
||||||
;; |
|
||||||
file) |
|
||||||
_arguments '*:file or directory:_files -g "*.(rb|json)"' |
|
||||||
;; |
|
||||||
list) |
|
||||||
compadd -a "$@" knife_general_flags |
|
||||||
;; |
|
||||||
*) |
|
||||||
_arguments '*:Subsubcommands:($(_knife_options3))' |
|
||||||
esac |
|
||||||
;; |
|
||||||
knifesubcmd4) |
|
||||||
if (( versioncomp > 0 )); then |
|
||||||
compadd "$@" attributes definitions files libraries providers recipes resources templates |
|
||||||
else |
|
||||||
_arguments '*:Subsubcommands:($(_knife_options2))' |
|
||||||
fi |
|
||||||
;; |
|
||||||
knifesubcmd5) |
|
||||||
_arguments '*:Subsubcommands:($(_knife_options3))' |
|
||||||
esac |
|
||||||
} |
|
||||||
|
|
||||||
# Helper functions to provide the argument completion for several depths of commands |
|
||||||
_knife_options1() { |
|
||||||
( for line in $( knife $words[2] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) |
|
||||||
} |
|
||||||
|
|
||||||
_knife_options2() { |
|
||||||
( for line in $( knife $words[2] $words[3] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) |
|
||||||
} |
|
||||||
|
|
||||||
_knife_options3() { |
|
||||||
( for line in $( knife $words[2] $words[3] $words[4] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done ) |
|
||||||
} |
|
||||||
|
|
||||||
# The chef_x_remote functions use knife to get a list of objects of type x on the server |
|
||||||
_chef_roles_remote() { |
|
||||||
(knife role list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
|
||||||
} |
|
||||||
|
|
||||||
_chef_clients_remote() { |
|
||||||
(knife client list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
|
||||||
} |
|
||||||
|
|
||||||
_chef_nodes_remote() { |
|
||||||
(knife node list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
|
||||||
} |
|
||||||
|
|
||||||
_chef_cookbooks_remote() { |
|
||||||
(knife cookbook list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
|
||||||
} |
|
||||||
|
|
||||||
_chef_sitecookbooks_remote() { |
|
||||||
(knife cookbook site list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
|
||||||
} |
|
||||||
|
|
||||||
_chef_data_bags_remote() { |
|
||||||
(knife data bag list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}') |
|
||||||
} |
|
||||||
|
|
||||||
# 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) |
|
||||||
} |
|
||||||
|
|
||||||
# This function extracts the available cookbook versions on the chef server |
|
||||||
_cookbook_versions() { |
|
||||||
(knife cookbook show $words[4] | grep -v $words[4] | grep -v -E '\]|\[|\{|\}' | sed 's/ //g' | sed 's/"//g') |
|
||||||
} |
|
||||||
|
|
||||||
_knife "$@" |
|
@ -1,27 +0,0 @@ |
|||||||
function _lein_commands() { |
|
||||||
local ret=1 state |
|
||||||
_arguments ':subcommand:->subcommand' && ret=0 |
|
||||||
|
|
||||||
case $state in |
|
||||||
subcommand) |
|
||||||
subcommands=( |
|
||||||
"clean:remove compiled files and dependencies from project" |
|
||||||
"compile:ahead-of-time compile the project" |
|
||||||
"deps:download and install all dependencies" |
|
||||||
"help:display a list of tasks or help for a given task" |
|
||||||
"install:install the project and its dependencies in your local repository" |
|
||||||
"jar:create a jar file containing the compiled .class files" |
|
||||||
"new:create a new project skeleton" |
|
||||||
"pom:write a pom.xml file to disk for maven interop" |
|
||||||
"test:run the project's tests" |
|
||||||
"uberjar:Create a jar including the contents of each of deps" |
|
||||||
"upgrade:upgrade leiningen to the latest stable release" |
|
||||||
"version:print leiningen's version" |
|
||||||
) |
|
||||||
_describe -t subcommands 'leiningen subcommands' subcommands && ret=0 |
|
||||||
esac |
|
||||||
|
|
||||||
return ret |
|
||||||
} |
|
||||||
|
|
||||||
compdef _lein_commands lein |
|
@ -0,0 +1,28 @@ |
|||||||
|
function _lein_commands() { |
||||||
|
local ret=1 state |
||||||
|
_arguments ':subcommand:->subcommand' && ret=0 |
||||||
|
|
||||||
|
case "$state" in |
||||||
|
subcommand) |
||||||
|
subcommands=( |
||||||
|
"clean:remove compiled files and dependencies from project" |
||||||
|
"compile:ahead-of-time compile the project" |
||||||
|
"deps:download and install all dependencies" |
||||||
|
"help:display a list of tasks or help for a given task" |
||||||
|
"install:install the project and its dependencies in your local repository" |
||||||
|
"jar:create a jar file containing the compiled .class files" |
||||||
|
"new:create a new project skeleton" |
||||||
|
"pom:write a pom.xml file to disk for maven interop" |
||||||
|
"test:run the project's tests" |
||||||
|
"uberjar:Create a jar including the contents of each of deps" |
||||||
|
"upgrade:upgrade leiningen to the latest stable release" |
||||||
|
"version:print leiningen's version" |
||||||
|
) |
||||||
|
_describe -t subcommands 'leiningen subcommands' subcommands && ret=0 |
||||||
|
esac |
||||||
|
|
||||||
|
return ret |
||||||
|
} |
||||||
|
|
||||||
|
compdef _lein_commands lein |
||||||
|
|
@ -1,16 +0,0 @@ |
|||||||
# To use: add a .lighthouse file into your directory with the URL to the |
|
||||||
# individual project. For example: |
|
||||||
# https://rails.lighthouseapp.com/projects/8994 |
|
||||||
# Example usage: http://screencast.com/t/ZDgwNDUwNT |
|
||||||
open_lighthouse_ticket () { |
|
||||||
if [ ! -f .lighthouse-url ]; then |
|
||||||
echo "There is no .lighthouse-url file in the current directory..." |
|
||||||
return 0; |
|
||||||
else |
|
||||||
lighthouse_url=$(cat .lighthouse-url); |
|
||||||
echo "Opening ticket #$1"; |
|
||||||
`open $lighthouse_url/tickets/$1`; |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
alias lho='open_lighthouse_ticket' |
|
@ -1,26 +0,0 @@ |
|||||||
# LOL!!1 |
|
||||||
# Source: http://aur.archlinux.org/packages/lolbash/lolbash/lolbash.sh |
|
||||||
|
|
||||||
alias wtf='dmesg' |
|
||||||
alias onoz='cat /var/log/errors.log' |
|
||||||
alias rtfm='man' |
|
||||||
|
|
||||||
alias visible='echo' |
|
||||||
alias invisible='cat' |
|
||||||
alias moar='more' |
|
||||||
|
|
||||||
alias icanhas='mkdir' |
|
||||||
alias donotwant='rm' |
|
||||||
alias dowant='cp' |
|
||||||
alias gtfo='mv' |
|
||||||
|
|
||||||
alias hai='cd' |
|
||||||
alias plz='pwd' |
|
||||||
|
|
||||||
alias inur='locate' |
|
||||||
|
|
||||||
alias nomz='ps -aux' |
|
||||||
alias nomnom='killall' |
|
||||||
|
|
||||||
alias cya='reboot' |
|
||||||
alias kthxbai='halt' |
|
@ -1,8 +0,0 @@ |
|||||||
# commands to control local mysql-server installation |
|
||||||
# paths are for osx installation via macports |
|
||||||
|
|
||||||
alias mysqlstart='sudo /opt/local/share/mysql5/mysql/mysql.server start' |
|
||||||
alias mysqlstop='sudo /opt/local/share/mysql5/mysql/mysql.server stop' |
|
||||||
alias mysqlrestart='sudo /opt/local/share/mysql5/mysql/mysql.server restart' |
|
||||||
|
|
||||||
alias mysqlstatus='mysqladmin5 -u root -p ping' |
|
@ -0,0 +1,82 @@ |
|||||||
|
# Archlinux ZSH Aliases and Functions |
||||||
|
# |
||||||
|
# Pacman Tips: |
||||||
|
# https://wiki.archlinux.org/index.php/Pacman_Tips |
||||||
|
|
||||||
|
# Yaourt Aliases |
||||||
|
if (( $+commands[yaourt] )); then |
||||||
|
function arch-upgrade() { |
||||||
|
yaourt -Syu |
||||||
|
} |
||||||
|
|
||||||
|
alias yaconf='yaourt -C' # Fix all configuration files with vimdiff. |
||||||
|
alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. |
||||||
|
alias yain='yaourt -S' # Install specific package(s) from the repositories. |
||||||
|
alias yains='yaourt -U' # Install specific package(s) not from the repositories but from a file . |
||||||
|
alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies. |
||||||
|
alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies. |
||||||
|
alias yarep='yaourt -Si' # Display information about a given package in the repositories. |
||||||
|
alias yareps='yaourt -Ss' # Search for package(s) in the repositories. |
||||||
|
alias yaloc='yaourt -Qi' # Display information about a given package in the local database. |
||||||
|
alias yalocs='yaourt -Qs' # Search for package(s) in the local database. |
||||||
|
alias yamir='yaourt -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist |
||||||
|
alias yainsd='yaourt -S --asdeps' # Install given package(s) as dependencies of another package |
||||||
|
|
||||||
|
# Update and refresh the local package and ABS databases against repositories. |
||||||
|
if (( $+commands[abs] )); then |
||||||
|
alias yaupd='yaourt -Sy && sudo abs' |
||||||
|
else |
||||||
|
alias yaupd='yaourt -Sy' |
||||||
|
fi |
||||||
|
else |
||||||
|
function arch-upgrade() { |
||||||
|
sudo pacman -Syu |
||||||
|
} |
||||||
|
fi |
||||||
|
|
||||||
|
# Pacman Aliaases |
||||||
|
alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. |
||||||
|
alias pacin='sudo pacman -S' # Install specific package(s) from the repositories. |
||||||
|
alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file. |
||||||
|
alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies. |
||||||
|
alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies. |
||||||
|
alias pacrep='pacman -Si' # Display information about a given package in the repositories. |
||||||
|
alias pacreps='pacman -Ss' # Search for package(s) in the repositories. |
||||||
|
alias pacloc='pacman -Qi' # Display information about a given package in the local database. |
||||||
|
alias paclocs='pacman -Qs' # Search for package(s) in the local database. |
||||||
|
alias pacinsd='sudo pacman -S --asdeps' # Install given package(s) as dependencies of another package. |
||||||
|
alias pacmir='sudo pacman -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist. |
||||||
|
alias paclsorphans='sudo pacman -Qdt' # List orphan packages(s). |
||||||
|
alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' # Remove orphan package(s). |
||||||
|
|
||||||
|
# Update and refresh the local package and ABS databases against repositories. |
||||||
|
if (( $+commands[abs] )); then |
||||||
|
alias pacupd='sudo pacman -Sy && sudo abs' |
||||||
|
else |
||||||
|
alias pacupd='sudo pacman -Sy' |
||||||
|
fi |
||||||
|
|
||||||
|
# List explicitly installed packages. |
||||||
|
function paclist() { |
||||||
|
sudo pacman -Qei $(pacman -Qu|cut -d" " -f 1) \ |
||||||
|
| awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' |
||||||
|
} |
||||||
|
|
||||||
|
# List disowned files. |
||||||
|
function pacdisowned() { |
||||||
|
tmp="${TMPDIR-/tmp}/pacman-disowned-$UID-$$" |
||||||
|
db="$tmp/db" |
||||||
|
fs="$tmp/fs" |
||||||
|
|
||||||
|
mkdir "$tmp" |
||||||
|
trap 'rm -rf "$tmp"' EXIT |
||||||
|
|
||||||
|
pacman -Qlq | sort -u > "$db" |
||||||
|
|
||||||
|
find /bin /etc /lib /sbin /usr \ |
||||||
|
! -name lost+found \ |
||||||
|
\( -type d -printf '%p/\n' -o -print \) | sort > "$fs" |
||||||
|
|
||||||
|
comm -23 "$fs" "$db" |
||||||
|
} |
||||||
|
|
@ -0,0 +1,20 @@ |
|||||||
|
#compdef pow-add pow-remove pow-restart |
||||||
|
#autoload |
||||||
|
|
||||||
|
local ret=1 |
||||||
|
|
||||||
|
case "$service" in |
||||||
|
(pow-add) |
||||||
|
_arguments "1:application:_files -/" && ret=0 |
||||||
|
;; |
||||||
|
(pow-(remove|restart)) |
||||||
|
_arguments "1: :->pow-app" && ret=0 |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
if [[ "$state" == 'pow-app' ]]; then |
||||||
|
_arguments '1:application:($HOME/.pow/*(@N:t))' && ret=0 |
||||||
|
fi |
||||||
|
|
||||||
|
return "$ret" |
||||||
|
|
@ -1,10 +1,75 @@ |
|||||||
# Thanks to Christopher Sexton |
# Inspired by Christopher Sexton's |
||||||
# https://gist.github.com/965032 |
# https://gist.github.com/1019777 |
||||||
function kapow { |
# |
||||||
touch ~/.pow/$1/tmp/restart.txt |
# Sorin Ionescu <sorin.ionescu@gmail.com> |
||||||
if [ $? -eq 0 ]; then |
|
||||||
echo "$fg[yellow]Pow restarting $1...$reset_color" |
# Gets the root of the Rack application. |
||||||
fi |
function _pow-rack-root() { |
||||||
|
local rack_root="${PWD}" |
||||||
|
|
||||||
|
while [[ "${rack_root}" != '/' ]]; do |
||||||
|
# Rack applictions must have a config.ru file in the root directory. |
||||||
|
if [[ -f "${rack_root}/config.ru" ]]; then |
||||||
|
echo "${rack_root}" |
||||||
|
return 0 |
||||||
|
else |
||||||
|
rack_root="${rack_root:h}" |
||||||
|
fi |
||||||
|
done |
||||||
|
|
||||||
|
return 1 |
||||||
|
} |
||||||
|
|
||||||
|
# Adds a Rack application to Pow. |
||||||
|
function pow-add() { |
||||||
|
local app="${${1:A}:-$(_pow-rack-root)}" |
||||||
|
local vhost="${app:t}" |
||||||
|
|
||||||
|
if [[ ! -f "${app}/config.ru" ]]; then |
||||||
|
echo "${0}: ${vhost:-$PWD:t}: not a Rack application or config.ru is missing" >&2 |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
if [[ -L "${HOME}/.pow/${vhost}" ]]; then |
||||||
|
echo "${0}: ${vhost}: already served at http://${vhost}.dev" |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
ln -s "${app}" "${HOME}/.pow/${vhost}" |
||||||
|
echo "Serving ${vhost} at http://${vhost}.dev" |
||||||
} |
} |
||||||
|
|
||||||
compctl -W ~/.pow -/ kapow |
# Removes a Rack application from Pow. |
||||||
|
function pow-remove() { |
||||||
|
local symlink="${HOME}/.pow/${1}" |
||||||
|
if [[ -L "${symlink}" ]]; then |
||||||
|
unlink "${symlink}" |
||||||
|
echo "Stopped serving ${1}" |
||||||
|
else |
||||||
|
echo "${0}: ${1}: no such application" >&2 |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Restarts a Rack application. |
||||||
|
function pow-restart() { |
||||||
|
local vhost="${${1}:-$(_pow-rack-root):t}" |
||||||
|
local tmp="${HOME}/.pow/${vhost}/tmp" |
||||||
|
|
||||||
|
if [[ ! -L "${HOME}/.pow/${vhost}" ]]; then |
||||||
|
echo "${0}: ${1}: no such application" >&2 |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
if [[ ! -d "${tmp}" ]]; then |
||||||
|
mkdir -p "${tmp}" |
||||||
|
fi |
||||||
|
|
||||||
|
if touch "${tmp}/restart.txt"; then |
||||||
|
echo "Restarted ${vhost}" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Aliases |
||||||
|
# View the standard out (puts) from any pow application. |
||||||
|
alias pow-log="tail -f ${HOME}/Library/Logs/Pow/apps/*" |
||||||
|
|
||||||
|
@ -1,13 +1,20 @@ |
|||||||
alias ss='thin --stats "/thin/stats" start' |
# Aliases (compatible with Rails 2) |
||||||
alias sg='ruby script/generate' |
alias rc='_rails-command console' |
||||||
alias sd='ruby script/destroy' |
alias rd='_rails-command destroy' |
||||||
alias sp='ruby script/plugin' |
alias rdb='_rails-command dbconsole' |
||||||
alias ssp='ruby script/spec' |
alias rdbm='rake db:migrate db:test:clone' |
||||||
alias rdbm='rake db:migrate' |
alias rg='_rails-command generate' |
||||||
alias sc='ruby script/console' |
alias rp='_rails-command plugin' |
||||||
alias sd='ruby script/server --debugger' |
alias rs='_rails-command server' |
||||||
|
alias rsd='_rails-command server --debugger' |
||||||
alias devlog='tail -f log/development.log' |
alias devlog='tail -f log/development.log' |
||||||
|
|
||||||
function remote_console() { |
# Functions |
||||||
/usr/bin/env ssh $1 "( cd $2 && ruby script/console production )" |
function _rails-command() { |
||||||
|
if [[ -e "script/server" ]]; then |
||||||
|
ruby script/"$@" |
||||||
|
else |
||||||
|
ruby script/rails "$@" |
||||||
|
fi |
||||||
} |
} |
||||||
|
|
||||||
|
@ -1,19 +0,0 @@ |
|||||||
# Rails 3 aliases, backwards-compatible with Rails 2. |
|
||||||
|
|
||||||
function _rails_command () { |
|
||||||
if [ -e "script/server" ]; then |
|
||||||
ruby script/$@ |
|
||||||
else |
|
||||||
ruby script/rails $@ |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
alias rc='_rails_command console' |
|
||||||
alias rd='_rails_command destroy' |
|
||||||
alias rdb='_rails_command dbconsole' |
|
||||||
alias rdbm='rake db:migrate db:test:clone' |
|
||||||
alias rg='_rails_command generate' |
|
||||||
alias rp='_rails_command plugin' |
|
||||||
alias rs='_rails_command server' |
|
||||||
alias rsd='_rails_command server --debugger' |
|
||||||
alias devlog='tail -f log/development.log' |
|
@ -0,0 +1,10 @@ |
|||||||
|
# Aliases |
||||||
|
alias rsync-copy='rsync --verbose --progress --human-readable --compress --archive --hard-links' |
||||||
|
compdef _rsync rsync-copy=rsync |
||||||
|
alias rsync-move='rsync --verbose --progress --human-readable --compress --archive --hard-links --remove-source-files' |
||||||
|
compdef _rsync rsync-move=rsync |
||||||
|
alias rsync-update='rsync --verbose --progress --human-readable --compress --archive --hard-links --update' |
||||||
|
compdef _rsync rsync-upate=rsync |
||||||
|
alias rsync-synchronize='rsync --verbose --progress --human-readable --compress --archive --hard-links --update --delete' |
||||||
|
compdef _rsync rsync-synchronize=rsync |
||||||
|
|
@ -1,147 +0,0 @@ |
|||||||
#compdef rvm |
|
||||||
|
|
||||||
local curcontext="$curcontext" state line cmds ret=1 |
|
||||||
|
|
||||||
_arguments -C \ |
|
||||||
'(- 1 *)'{-v,--version}'[display version information]' \ |
|
||||||
'(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \ |
|
||||||
'(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \ |
|
||||||
'(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \ |
|
||||||
'(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \ |
|
||||||
'(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \ |
|
||||||
'-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \ |
|
||||||
'-e[Execute code from the command line]:code' \ |
|
||||||
'(-G)-G[root gem path to use]:path:_files' \ |
|
||||||
'(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \ |
|
||||||
'(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \ |
|
||||||
'(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \ |
|
||||||
'(-C|--configure)'{-C,--configure}'=[custom configure options]' \ |
|
||||||
'(--nice)--nice[process niceness (for slow computers, default 0)]:number' \ |
|
||||||
'(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \ |
|
||||||
'(--head)--head[with update, updates rvm to git head version]' \ |
|
||||||
'(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \ |
|
||||||
'(--default)--default[with ruby select, sets a default ruby for new shells]' \ |
|
||||||
'(--debug)--debug[Toggle debug mode on for very verbose output]' \ |
|
||||||
'(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \ |
|
||||||
'(--force)--force[Force install, removes old install & source before install]' \ |
|
||||||
'(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \ |
|
||||||
'(--latest)--latest[with gemset --dump skips version strings for latest gem]' \ |
|
||||||
'(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \ |
|
||||||
'(--docs)--docs[with install, attempt to generate ri after installation]' \ |
|
||||||
'(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \ |
|
||||||
'1: :->cmds' \ |
|
||||||
'*: :->args' && ret=0 |
|
||||||
|
|
||||||
case $state in |
|
||||||
cmds) |
|
||||||
cmds=( |
|
||||||
"version:show the rvm version installed in rvm_path" |
|
||||||
"use:setup current shell to use a specific ruby version" |
|
||||||
"reload:reload rvm source itself (useful after changing rvm source)" |
|
||||||
"implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)." |
|
||||||
"update:upgrades rvm to the latest version." |
|
||||||
"reset:remove current and stored default & system settings." |
|
||||||
"info :show the *current* environment information for current ruby" |
|
||||||
"current:print the *current* ruby version and the name of any gemset being used." |
|
||||||
"debug:show info plus additional information for common issues" |
|
||||||
"install:install one or many ruby versions" |
|
||||||
"uninstall:uninstall one or many ruby versions, leaves their sources" |
|
||||||
"remove:uninstall one or many ruby versions and remove their sources" |
|
||||||
"migrate:Lets you migrate all gemsets from one ruby to another." |
|
||||||
"upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically." |
|
||||||
"wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like." |
|
||||||
"cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm." |
|
||||||
"repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)." |
|
||||||
"snapshot:Lets your backup / restore an rvm installation in a lightweight manner." |
|
||||||
"disk-usage:Tells you how much disk space rvm install is using." |
|
||||||
"tools:Provides general information about the ruby environment, primarily useful when scripting rvm." |
|
||||||
"docs:Tools to make installing ri and rdoc documentation easier." |
|
||||||
"rvmrc:Tools related to managing rvmrc trust and loading." |
|
||||||
"exec:runs an arbitrary command as a set operation." |
|
||||||
"ruby:runs a named ruby file against specified and/or all rubies" |
|
||||||
"gem:runs a gem command using selected ruby's 'gem'" |
|
||||||
"rake:runs a rake task against specified and/or all rubies" |
|
||||||
"tests:runs 'rake test' across selected ruby versions" |
|
||||||
"specs:runs 'rake spec' across selected ruby versions" |
|
||||||
"monitor:Monitor cwd for testing, run rake {spec,test} on changes." |
|
||||||
"gemset:gemsets: http://rvm.beginrescueend.com/gemsets/" |
|
||||||
"rubygems:Switches the installed version of rubygems for the current ruby." |
|
||||||
"gemdir:display the path to the current gem directory (GEM_HOME)." |
|
||||||
"srcdir:display the path to rvm source directory (may be yanked)" |
|
||||||
"fetch:Performs an archive / src fetch only of the selected ruby." |
|
||||||
"list:show currently installed rubies, interactive output." |
|
||||||
"package:Install a dependency package {readline,iconv,zlib,openssl}" |
|
||||||
"notes:Display notes, with operating system specifics." |
|
||||||
"export:Temporarily set an environment variable in the current shell." |
|
||||||
"unexport:Undo changes made to the environment by 'rvm export'." |
|
||||||
) |
|
||||||
_describe -t commands 'rvm command' cmds && ret=0 |
|
||||||
;; |
|
||||||
args) |
|
||||||
case $line[1] in |
|
||||||
(use|uninstall|remove|list) |
|
||||||
_values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0 |
|
||||||
;; |
|
||||||
(install|fetch) |
|
||||||
_values -S , 'rubies' $(rvm list known_strings) && ret=0 |
|
||||||
;; |
|
||||||
gemset) |
|
||||||
if (( CURRENT == 3 )); then |
|
||||||
_values 'gemset_commands' \ |
|
||||||
'import' \ |
|
||||||
'export' \ |
|
||||||
'create' \ |
|
||||||
'copy' \ |
|
||||||
'rename' \ |
|
||||||
'empty' \ |
|
||||||
'delete' \ |
|
||||||
'name' \ |
|
||||||
'dir' \ |
|
||||||
'list' \ |
|
||||||
'list_all' \ |
|
||||||
'gemdir' \ |
|
||||||
'install' \ |
|
||||||
'pristine' \ |
|
||||||
'clear' \ |
|
||||||
'use' \ |
|
||||||
'update' \ |
|
||||||
'unpack' \ |
|
||||||
'globalcache' |
|
||||||
else |
|
||||||
_values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null) |
|
||||||
fi |
|
||||||
ret=0 |
|
||||||
;; |
|
||||||
package) |
|
||||||
if (( CURRENT == 3 )); then |
|
||||||
_values 'package_commands' \ |
|
||||||
'install' \ |
|
||||||
'uninstall' |
|
||||||
else |
|
||||||
_values 'packages' \ |
|
||||||
'readline' \ |
|
||||||
'iconv' \ |
|
||||||
'curl' \ |
|
||||||
'openssl' \ |
|
||||||
'zlib' \ |
|
||||||
'autoconf' \ |
|
||||||
'ncurses' \ |
|
||||||
'pkgconfig' \ |
|
||||||
'gettext' \ |
|
||||||
'glib' \ |
|
||||||
'mono' \ |
|
||||||
'llvm' \ |
|
||||||
'libxml2' \ |
|
||||||
'libxslt' \ |
|
||||||
'libyaml' |
|
||||||
fi |
|
||||||
ret=0 |
|
||||||
;; |
|
||||||
*) |
|
||||||
(( ret )) && _message 'no more arguments' |
|
||||||
;; |
|
||||||
esac |
|
||||||
;; |
|
||||||
esac |
|
||||||
|
|
||||||
return ret |
|
@ -1,53 +0,0 @@ |
|||||||
# Get the name of the current branch. |
|
||||||
function rvm_prompt_info() { |
|
||||||
local ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) |
|
||||||
if [[ -n "$ruby_version" ]]; then |
|
||||||
echo "($ruby_version)" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
alias rubies='rvm list rubies' |
|
||||||
alias gemsets='rvm gemset list' |
|
||||||
|
|
||||||
local ruby18='ruby-1.8.7-p334' |
|
||||||
local ruby19='ruby-1.9.2-p180' |
|
||||||
|
|
||||||
function rb18 { |
|
||||||
if [ -z "$1" ]; then |
|
||||||
rvm use "$ruby18" |
|
||||||
else |
|
||||||
rvm use "$ruby18@$1" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
_rb18() {compadd `ls -1 $rvm_path/gems | grep "^$ruby18@" | sed -e "s/^$ruby18@//" | awk '{print $1}'`} |
|
||||||
compdef _rb18 rb18 |
|
||||||
|
|
||||||
function rb19 { |
|
||||||
if [ -z "$1" ]; then |
|
||||||
rvm use "$ruby19" |
|
||||||
else |
|
||||||
rvm use "$ruby19@$1" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
_rb19() {compadd `ls -1 $rvm_path/gems | grep "^$ruby19@" | sed -e "s/^$ruby19@//" | awk '{print $1}'`} |
|
||||||
compdef _rb19 rb19 |
|
||||||
|
|
||||||
function rvm-update { |
|
||||||
rvm get head |
|
||||||
rvm reload # TODO: Reload rvm completion? |
|
||||||
} |
|
||||||
|
|
||||||
# TODO: Make this usable w/o rvm. |
|
||||||
function gems { |
|
||||||
local current_ruby=`rvm-prompt i v p` |
|
||||||
local current_gemset=`rvm-prompt g` |
|
||||||
|
|
||||||
gem list $@ | sed \ |
|
||||||
-Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \ |
|
||||||
-Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \ |
|
||||||
-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ |
|
||||||
-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" |
|
||||||
} |
|
||||||
|
|
@ -1,42 +0,0 @@ |
|||||||
function svn_prompt_info { |
|
||||||
if [ in_svn ]; then |
|
||||||
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ |
|
||||||
$ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
function in_svn() { |
|
||||||
if [[ -d .svn ]]; then |
|
||||||
echo 1 |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
function svn_get_repo_name { |
|
||||||
if [ in_svn ]; then |
|
||||||
svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT |
|
||||||
|
|
||||||
svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
function svn_get_rev_nr { |
|
||||||
if [ in_svn ]; then |
|
||||||
svn info 2> /dev/null | sed -n s/Revision:\ //p |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
function svn_dirty_choose { |
|
||||||
if [ in_svn ]; then |
|
||||||
s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null) |
|
||||||
if [ $s ]; then |
|
||||||
echo $1 |
|
||||||
else |
|
||||||
echo $2 |
|
||||||
fi |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
function svn_dirty { |
|
||||||
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN |
|
||||||
} |
|
@ -1,280 +0,0 @@ |
|||||||
#compdef task |
|
||||||
# |
|
||||||
# zsh completion for taskwarrior |
|
||||||
# |
|
||||||
# Copyright 2010 - 2011 Johannes Schlatow |
|
||||||
# Copyright 2009 P.C. Shyamshankar |
|
||||||
# All rights reserved. |
|
||||||
# |
|
||||||
# This script is part of the taskwarrior project. |
|
||||||
# |
|
||||||
# This program is free software; you can redistribute it and/or modify it under |
|
||||||
# the terms of the GNU General Public License as published by the Free Software |
|
||||||
# Foundation; either version 2 of the License, or (at your option) any later |
|
||||||
# version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT |
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
|
||||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
|
||||||
# details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License along with |
|
||||||
# this program; if not, write to the |
|
||||||
# |
|
||||||
# Free Software Foundation, Inc., |
|
||||||
# 51 Franklin Street, Fifth Floor, |
|
||||||
# Boston, MA |
|
||||||
# 02110-1301 |
|
||||||
# USA |
|
||||||
# |
|
||||||
typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers |
|
||||||
_task_projects=($(task _projects)) |
|
||||||
_task_tags=($(task _tags)) |
|
||||||
_task_ids=($(task _ids)) |
|
||||||
_task_config=($(task _config)) |
|
||||||
_task_modifiers=( |
|
||||||
'before' \ |
|
||||||
'after' \ |
|
||||||
'none' \ |
|
||||||
'any' \ |
|
||||||
'is' \ |
|
||||||
'isnt' \ |
|
||||||
'has' \ |
|
||||||
'hasnt' \ |
|
||||||
'startswith' \ |
|
||||||
'endswith' \ |
|
||||||
'word' \ |
|
||||||
'noword' |
|
||||||
) |
|
||||||
_task_cmds=($(task _commands)) |
|
||||||
_task_zshcmds=( ${(f)"$(task _zshcommands)"} ) |
|
||||||
|
|
||||||
|
|
||||||
_task_idCmds=( |
|
||||||
'append' \ |
|
||||||
'prepend' \ |
|
||||||
'annotate' \ |
|
||||||
'denotate' \ |
|
||||||
'edit' \ |
|
||||||
'duplicate' \ |
|
||||||
'info' \ |
|
||||||
'start' \ |
|
||||||
'stop' \ |
|
||||||
'done' |
|
||||||
) |
|
||||||
|
|
||||||
_task_idCmdsDesc=( |
|
||||||
'append:Appends more description to an existing task.' \ |
|
||||||
'prepend:Prepends more description to an existing task.' \ |
|
||||||
'annotate:Adds an annotation to an existing task.' \ |
|
||||||
'denotate:Deletes an annotation of an existing task.' \ |
|
||||||
'edit:Launches an editor to let you modify a task directly.' \ |
|
||||||
'duplicate:Duplicates the specified task, and allows modifications.' \ |
|
||||||
'info:Shows all data, metadata for specified task.' \ |
|
||||||
'start:Marks specified task as started.' \ |
|
||||||
'stop:Removes the start time from a task.' \ |
|
||||||
'done:Marks the specified task as completed.' |
|
||||||
) |
|
||||||
|
|
||||||
_task() { |
|
||||||
_arguments -s -S \ |
|
||||||
"*::task command:_task_commands" |
|
||||||
return 0 |
|
||||||
} |
|
||||||
|
|
||||||
local -a reply args word |
|
||||||
word=$'[^\0]#\0' |
|
||||||
|
|
||||||
# priorities |
|
||||||
local -a task_priorities |
|
||||||
_regex_words values 'task priorities' \ |
|
||||||
'H:High' \ |
|
||||||
'M:Middle' \ |
|
||||||
'L:Low' |
|
||||||
task_priorities=("$reply[@]") |
|
||||||
|
|
||||||
# projects |
|
||||||
local -a task_projects |
|
||||||
task_projects=( |
|
||||||
/"$word"/ |
|
||||||
":values:task projects:compadd -a _task_projects" |
|
||||||
) |
|
||||||
|
|
||||||
local -a _task_dates |
|
||||||
_regex_words values 'task dates' \ |
|
||||||
'tod*ay:Today' \ |
|
||||||
'yes*terday:Yesterday' \ |
|
||||||
'tom*orrow:Tomorrow' \ |
|
||||||
'sow:Start of week' \ |
|
||||||
'soww:Start of work week' \ |
|
||||||
'socw:Start of calendar week' \ |
|
||||||
'som:Start of month' \ |
|
||||||
'soy:Start of year' \ |
|
||||||
'eow:End of week' \ |
|
||||||
'eoww:End of work week' \ |
|
||||||
'eocw:End of calendar week' \ |
|
||||||
'eom:End of month' \ |
|
||||||
'eoy:End of year' \ |
|
||||||
'mon:Monday' \ |
|
||||||
'tue:Tuesday'\ |
|
||||||
'wed:Wednesday' \ |
|
||||||
'thu:Thursday' \ |
|
||||||
'fri:Friday' \ |
|
||||||
'sat:Saturday' \ |
|
||||||
'sun:Sunday' |
|
||||||
_task_dates=("$reply[@]") |
|
||||||
|
|
||||||
local -a _task_reldates |
|
||||||
_regex_words values 'task reldates' \ |
|
||||||
'hrs:n hours' \ |
|
||||||
'day:n days' \ |
|
||||||
'1st:first' \ |
|
||||||
'2nd:second' \ |
|
||||||
'3rd:third' \ |
|
||||||
'th:4th, 5th, etc.' \ |
|
||||||
'wks:weeks' |
|
||||||
_task_reldates=("$reply[@]") |
|
||||||
|
|
||||||
task_dates=( |
|
||||||
\( "$_task_dates[@]" \| |
|
||||||
\( /$'[0-9][0-9]#'/- \( "$_task_reldates[@]" \) \) |
|
||||||
\) |
|
||||||
) |
|
||||||
|
|
||||||
_regex_words values 'task frequencies' \ |
|
||||||
'daily:Every day' \ |
|
||||||
'day:Every day' \ |
|
||||||
'weekdays:Every day skipping weekend days' \ |
|
||||||
'weekly:Every week' \ |
|
||||||
'biweekly:Every two weeks' \ |
|
||||||
'fortnight:Every two weeks' \ |
|
||||||
'quarterly:Every three months' \ |
|
||||||
'semiannual:Every six months' \ |
|
||||||
'annual:Every year' \ |
|
||||||
'yearly:Every year' \ |
|
||||||
'biannual:Every two years' \ |
|
||||||
'biyearly:Every two years' |
|
||||||
_task_freqs=("$reply[@]") |
|
||||||
|
|
||||||
local -a _task_frequencies |
|
||||||
_regex_words values 'task frequencies' \ |
|
||||||
'd:days' \ |
|
||||||
'w:weeks' \ |
|
||||||
'q:quarters' \ |
|
||||||
'y:years' |
|
||||||
_task_frequencies=("$reply[@]") |
|
||||||
|
|
||||||
task_freqs=( |
|
||||||
\( "$_task_freqs[@]" \| |
|
||||||
\( /$'[0-9][0-9]#'/- \( "$_task_frequencies[@]" \) \) |
|
||||||
\) |
|
||||||
) |
|
||||||
|
|
||||||
# attributes |
|
||||||
local -a task_attributes |
|
||||||
_regex_words -t ':' default 'task attributes' \ |
|
||||||
'pro*ject:Project name:$task_projects' \ |
|
||||||
'du*e:Due date:$task_dates' \ |
|
||||||
'wa*it:Date until task becomes pending:$task_dates' \ |
|
||||||
're*cur:Recurrence frequency:$task_freqs' \ |
|
||||||
'pri*ority:priority:$task_priorities' \ |
|
||||||
'un*til:Recurrence end date:$task_dates' \ |
|
||||||
'fg:Foreground color' \ |
|
||||||
'bg:Background color' \ |
|
||||||
'li*mit:Desired number of rows in report' |
|
||||||
task_attributes=("$reply[@]") |
|
||||||
|
|
||||||
args=( |
|
||||||
\( "$task_attributes[@]" \| |
|
||||||
\( /'(project|due|wait|recur|priority|until|fg|bg|limit).'/- \( /$'[^:]#:'/ ":default:modifiers:compadd -S ':' -a _task_modifiers" \) \) \| |
|
||||||
\( /'(rc).'/- \( /$'[^:]#:'/ ":arguments:config:compadd -S ':' -a _task_config" \) \) \| |
|
||||||
\( /'(+|-)'/- \( /"$word"/ ":values:remove tag:compadd -a _task_tags" \) \) \| |
|
||||||
\( /"$word"/ \) |
|
||||||
\) \# |
|
||||||
) |
|
||||||
_regex_arguments _task_attributes "${args[@]}" |
|
||||||
|
|
||||||
## task commands |
|
||||||
|
|
||||||
# default completion |
|
||||||
(( $+functions[_task_default] )) || |
|
||||||
_task_default() { |
|
||||||
_task_attributes "$@" |
|
||||||
} |
|
||||||
|
|
||||||
# commands expecting an ID |
|
||||||
(( $+functions[_task_id] )) || |
|
||||||
_task_id() { |
|
||||||
if (( CURRENT < 3 )); then |
|
||||||
# update IDs |
|
||||||
_task_zshids=( ${(f)"$(task _zshids)"} ) |
|
||||||
_describe -t values 'task IDs' _task_zshids |
|
||||||
else |
|
||||||
_task_attributes "$@" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
# merge completion |
|
||||||
(( $+functions[_task_merge] )) || |
|
||||||
_task_merge() { |
|
||||||
# TODO match URIs in .taskrc |
|
||||||
_files |
|
||||||
} |
|
||||||
|
|
||||||
# push completion |
|
||||||
(( $+functions[_task_push] )) || |
|
||||||
_task_push() { |
|
||||||
# TODO match URIs in .taskrc |
|
||||||
_files |
|
||||||
} |
|
||||||
|
|
||||||
# pull completion |
|
||||||
(( $+functions[_task_pull] )) || |
|
||||||
_task_pull() { |
|
||||||
# TODO match URIs in .taskrc |
|
||||||
_files |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
# modify (task [0-9]* ...) completion |
|
||||||
(( $+functions[_task_modify] )) || |
|
||||||
_task_modify() { |
|
||||||
_describe -t commands 'task command' _task_idCmdsDesc |
|
||||||
_task_attributes "$@" |
|
||||||
} |
|
||||||
|
|
||||||
## first level completion => task sub-command completion |
|
||||||
(( $+functions[_task_commands] )) || |
|
||||||
_task_commands() { |
|
||||||
local cmd ret=1 |
|
||||||
if (( CURRENT == 1 )); then |
|
||||||
# update IDs |
|
||||||
_task_zshids=( ${(f)"$(task _zshids)"} ) |
|
||||||
|
|
||||||
_describe -t commands 'task command' _task_zshcmds |
|
||||||
_describe -t values 'task IDs' _task_zshids |
|
||||||
# TODO match more than one ID |
|
||||||
elif [[ $words[1] =~ ^[0-9]*$ ]] then |
|
||||||
_call_function ret _task_modify |
|
||||||
return ret |
|
||||||
else |
|
||||||
# local curcontext="${curcontext}" |
|
||||||
# cmd="${_task_cmds[(r)$words[1]:*]%%:*}" |
|
||||||
cmd="${_task_cmds[(r)$words[1]]}" |
|
||||||
idCmd="${(M)_task_idCmds[@]:#$words[1]}" |
|
||||||
if (( $#cmd )); then |
|
||||||
# curcontext="${curcontext%:*:*}:task-${cmd}" |
|
||||||
|
|
||||||
if (( $#idCmd )); then |
|
||||||
_call_function ret _task_id |
|
||||||
else |
|
||||||
_call_function ret _task_${cmd} || |
|
||||||
_call_function ret _task_default || |
|
||||||
_message "No command remaining." |
|
||||||
fi |
|
||||||
else |
|
||||||
_message "Unknown subcommand ${cmd}" |
|
||||||
fi |
|
||||||
return ret |
|
||||||
fi |
|
||||||
} |
|
@ -1,21 +1,25 @@ |
|||||||
################################################################################ |
# Complete task. |
||||||
# Author: Pete Clark |
completion_file="${0:h}/_task" |
||||||
# Email: pete[dot]clark[at]gmail[dot]com |
if [[ ! -e "$completion_file" ]] && ; then |
||||||
# Version: 0.1 (05/24/2011) |
if [[ -L "$completion_file" ]]; then |
||||||
# License: WTFPL<http://sam.zoy.org/wtfpl/> |
unlink "$completion_file" 2> /dev/null |
||||||
# |
fi |
||||||
# This oh-my-zsh plugin adds smart tab completion for |
|
||||||
# TaskWarrior<http://taskwarrior.org/>. It uses the zsh tab completion |
|
||||||
# script (_task) distributed with TaskWarrior for the completion definitions. |
|
||||||
# |
|
||||||
# Typing task[tabtab] will give you a list of current tasks, task 66[tabtab] |
|
||||||
# gives a list of available modifications for that task, etc. |
|
||||||
################################################################################ |
|
||||||
|
|
||||||
|
if (( $+commands[taskwarrior] )); then |
||||||
|
ln -s \ |
||||||
|
"${commands[task]:h:h}/share/doc/task/scripts/zsh/_task" \ |
||||||
|
"$completion_file" \ |
||||||
|
2> /dev/null |
||||||
|
fi |
||||||
|
fi |
||||||
|
unset completion_file |
||||||
|
|
||||||
|
# Style |
||||||
zstyle ':completion:*:*:task:*' verbose yes |
zstyle ':completion:*:*:task:*' verbose yes |
||||||
zstyle ':completion:*:*:task:*:descriptions' format '%U%B%d%b%u' |
zstyle ':completion:*:*:task:*:descriptions' format '%U%B%d%b%u' |
||||||
|
|
||||||
zstyle ':completion:*:*:task:*' group-name '' |
zstyle ':completion:*:*:task:*' group-name '' |
||||||
|
|
||||||
|
# Aliases |
||||||
alias t=task |
alias t=task |
||||||
compdef _task t=task |
compdef _task t=task |
||||||
|
|
||||||
|
@ -1,12 +1,15 @@ |
|||||||
|
# Aliases |
||||||
alias et='mate .' |
alias et='mate .' |
||||||
alias ett='mate app config lib db public spec test Rakefile Capfile Todo' |
alias ett='mate app config lib db public spec test Rakefile Capfile Todo' |
||||||
alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo' |
alias etp='mate app config features lib db public spec test Gemfile Rakefile Capfile Todo' |
||||||
alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo' |
alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo' |
||||||
|
|
||||||
# Edit Ruby app in TextMate |
# Edit Ruby app in TextMate. |
||||||
alias mr='mate CHANGELOG app config db lib public script spec test' |
alias mr='mate CHANGELOG app config db lib public script spec test' |
||||||
|
|
||||||
|
# Functions |
||||||
function tm() { |
function tm() { |
||||||
cd $1 |
cd $1 |
||||||
mate $1 |
mate $1 |
||||||
} |
} |
||||||
|
|
||||||
|
@ -0,0 +1,30 @@ |
|||||||
|
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. |
||||||
|
|
@ -0,0 +1,5 @@ |
|||||||
|
#compdef wake |
||||||
|
#autoload |
||||||
|
|
||||||
|
_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0 |
||||||
|
|
@ -0,0 +1,15 @@ |
|||||||
|
function wake() { |
||||||
|
local config_file="$HOME/.wakeonlan/$1" |
||||||
|
if [[ ! -f "$config_file" ]]; then |
||||||
|
echo "$0: $1: There is no such device file." >&2 |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
if (( ! $+commands[wakeonlan] )); then |
||||||
|
echo "$0: Can't find wakeonlan. Is it installed?" >&2 |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
wakeonlan -f "$config_file" |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue