Sorin Ionescu
13 years ago
66 changed files with 905 additions and 1777 deletions
@ -1,6 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -1,3 +1,8 @@
|
||||
if [ -f `brew --prefix`/etc/autojump ]; then |
||||
. `brew --prefix`/etc/autojump |
||||
if [[ -f /etc/profile.d/autojump.zsh ]]; then |
||||
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 |
||||
|
||||
|
@ -1,80 +0,0 @@
@@ -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 @@
@@ -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' |
||||
|
||||
|
@ -1,21 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -1,2 +0,0 @@
|
||||
alias cloudapp="${0:r:r}.rb" |
||||
|
@ -1,60 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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,6 +1,10 @@
@@ -1,6 +1,10 @@
|
||||
# hub alias from defunkt |
||||
# Aliases |
||||
|
||||
# Hub by defunkt |
||||
# https://github.com/defunkt/hub |
||||
if [ "$commands[(I)hub]" ]; then |
||||
# eval `hub alias -s zsh` |
||||
function git(){hub "$@"} |
||||
if (( $+commands[hub] )); then |
||||
function git() { |
||||
hub "$@" |
||||
} |
||||
fi |
||||
|
||||
|
@ -1,9 +1,9 @@
@@ -1,9 +1,9 @@
|
||||
# Aliases |
||||
alias kate='kate >/dev/null 2>&1' # Silent start. |
||||
|
||||
# Kate |
||||
# Start kate always silent |
||||
alias kate='kate >/dev/null 2>&1' |
||||
|
||||
function kt () { |
||||
cd $1 |
||||
kate $1 |
||||
# Functions |
||||
function kt() { |
||||
cd "$1" |
||||
kate "$1" |
||||
} |
||||
|
||||
|
@ -1,174 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -1,10 +1,75 @@
|
||||
# Thanks to Christopher Sexton |
||||
# https://gist.github.com/965032 |
||||
function kapow { |
||||
touch ~/.pow/$1/tmp/restart.txt |
||||
if [ $? -eq 0 ]; then |
||||
echo "$fg[yellow]Pow restarting $1...$reset_color" |
||||
# Inspired by Christopher Sexton's |
||||
# https://gist.github.com/1019777 |
||||
# |
||||
# Sorin Ionescu <sorin.ionescu@gmail.com> |
||||
|
||||
# Gets the root of the Rack application. |
||||
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" |
||||
} |
||||
|
||||
# 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 |
||||
} |
||||
|
||||
compctl -W ~/.pow -/ kapow |
||||
# 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 @@
@@ -1,13 +1,20 @@
|
||||
alias ss='thin --stats "/thin/stats" start' |
||||
alias sg='ruby script/generate' |
||||
alias sd='ruby script/destroy' |
||||
alias sp='ruby script/plugin' |
||||
alias ssp='ruby script/spec' |
||||
alias rdbm='rake db:migrate' |
||||
alias sc='ruby script/console' |
||||
alias sd='ruby script/server --debugger' |
||||
# Aliases (compatible with Rails 2) |
||||
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' |
||||
|
||||
function remote_console() { |
||||
/usr/bin/env ssh $1 "( cd $2 && ruby script/console production )" |
||||
# Functions |
||||
function _rails-command() { |
||||
if [[ -e "script/server" ]]; then |
||||
ruby script/"$@" |
||||
else |
||||
ruby script/rails "$@" |
||||
fi |
||||
} |
||||
|
||||
|
@ -1,19 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -1,21 +1,25 @@
|
||||
################################################################################ |
||||
# Author: Pete Clark |
||||
# Email: pete[dot]clark[at]gmail[dot]com |
||||
# Version: 0.1 (05/24/2011) |
||||
# License: WTFPL<http://sam.zoy.org/wtfpl/> |
||||
# |
||||
# 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. |
||||
################################################################################ |
||||
# Complete task. |
||||
completion_file="${0:h}/_task" |
||||
if [[ ! -e "$completion_file" ]] && ; then |
||||
if [[ -L "$completion_file" ]]; then |
||||
unlink "$completion_file" 2> /dev/null |
||||
fi |
||||
|
||||
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:*:descriptions' format '%U%B%d%b%u' |
||||
|
||||
zstyle ':completion:*:*:task:*' group-name '' |
||||
|
||||
# Aliases |
||||
alias t=task |
||||
compdef _task t=task |
||||
|
||||
|
@ -1,12 +1,15 @@
@@ -1,12 +1,15 @@
|
||||
# Aliases |
||||
alias et='mate .' |
||||
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' |
||||
|
||||
# Edit Ruby app in TextMate |
||||
# Edit Ruby app in TextMate. |
||||
alias mr='mate CHANGELOG app config db lib public script spec test' |
||||
|
||||
# Functions |
||||
function tm() { |
||||
cd $1 |
||||
mate $1 |
||||
} |
||||
|
||||
|
@ -0,0 +1,30 @@
@@ -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 @@
@@ -0,0 +1,5 @@
|
||||
#compdef wake |
||||
#autoload |
||||
|
||||
_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0 |
||||
|
@ -0,0 +1,15 @@
@@ -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