# I prefer POSIX collation for ls
alias ls="LC_COLLATE=POSIX ls $_ls_opts"
-alias l='ls --time-style=+%Y%m%d.%H%M -gG'
+alias l='ls --time-style=+%Y-%m-%d-%H:%M -gG'
alias ll='ls -l'
alias la='ls -a'
alias lla='ls -la'
# #183394
alias w='w|cat'
-alias egrep='egrep --color=auto -d skip'
-alias fgrep='fgrep --color=auto -d skip'
-alias grep='grep --color=auto -d skip'
+alias -g ND='*(/om[1])' # newest directory
+alias -g NF='*(.om[1])' # newest file
+
+alias egrep='egrep --color=auto -d skip -D skip'
+alias fgrep='fgrep --color=auto -d skip -D skip'
+alias grep='grep --color=auto -d skip -D skip'
alias mmv='noglob zmv -W'
alias zcp='zmv -C'
alias mbug='bts show --mbox'
alias bug='BROWSER=www-browser bts show'
-# handy documentation lookup on Debian
-# from http://www.michael-prokop.at/computer/config/.zshrc
+edalias() {
+ [[ -z "$1" ]] && { echo "Usage: edalias <alias_to_edit>" ; return 1 } || vared aliases'[$1]' ;
+}
+compdef _aliases edalias
+
+edfunc() {
+ [[ -z "$1" ]] && { echo "Usage: edfunc <function_to_edit>" ; return 1 } || zed -f "$1" ;
+}
+compdef _functions edfunc
+
doc() { cd /usr/share/doc/$1 }
compdef '_files -W /usr/share/doc -/' doc
function psgrep() { ps aux | grep "[${1[1]}]${1[2,-1]}" }
+alias rw-='chmod 600'
+alias rwx='chmod 700'
+alias r--='chmod 644'
+alias r-x='chmod 755'
+alias r-s='chmod 2755'
+alias rws='chmod 2775'
+
alias bofh='fortune bofh-excuses'
autoload -U baseconv
ptsunsub() { echo unsubscribe ${1:?E: no package name given.} | sendmail -f ${2:-$DEBEMAIL} pts@qa.debian.org }
qasub() { echo subscribe ${1:?E: no package name given.} ${2:-unspecifed} | sendmail -f $DEBEMAIL ddpo@qa.debian.org }
qaunsub() { echo unsubscribe ${1:?E: no package name given.} ${2:-unspecifed} | sendmail -f $DEBEMAIL ddpo@qa.debian.org }
+listsub() { echo Subject: subscribe | sendmail -f ${1%@*}=${1#*@}@mass.madduck.net ${1%@*}-request@${1#*@} }
+listunsub() { echo Subject: unsubscribe | sendmail -f ${1%@*}=${1#*@}@mass.madduck.net ${1%@*}-request@${1#*@} }
uc() { unicode --max=0 --colour=off "$@" | sensible-pager }
alias btd='btdownloadheadless'
+function asc () { autossh -t "$@" 'screen -qxp= || screen -qdRR' }
+compdef asc=ssh
+
alias mdtest='swaks -s localhost -t'
if whence devtodo >/dev/null; then
[[ -z ${(M)chpwd_functions:#_devtodo_on_chpwd} ]] && chpwd_functions+=_devtodo_on_chpwd
fi
+pdfextract() {
+ local i=$1
+ local o=$2
+ shift 2
+ pdftk "$i" cat "${@:-1-end}" output "${o%.pdf}.pdf"
+ if [ -n "$1" ]; then
+ local tmpfile
+ tmpfile=$(tempfile -p pdftk -s .pdf)
+ cleanup() { rm -f $tmpfile; trap - EXIT; }
+ trap cleanup EXIT
+ pdftk "$i" cat "1-end~${(j:~:)@}" output $tmpfile
+ mv $tmpfile "$i"
+ cleanup
+ fi
+}
+compdef _files pdfextract
+
+gittestfile() {
+ local annex; annex=false
+ local file
+
+ case "$1" in
+ (-a) annex=true;;
+ (*)
+ if [ -n "$file" ]; then
+ echo >&2 "E: filename already given"
+ return 1
+ fi
+ file="$1";;
+ esac
+
+ if [ -z "$file" ]; then
+ file=$(TMPDIR=${PWD} tempfile -ptest. -s.txt)
+ fi
+
+ echo "Test file created $(date)" >| $file
+
+ case "$annex" in
+ true)
+ git annex add $file
+ git commit -m"Add test file $file to annex"
+ ;;
+ false)
+ git add $file
+ git commit -m"Add test file $file"
+ ;;
+ esac
+}
+
# vim:ft=zsh