# Reads original zshrc and contains old zshrc stuff source ${HOME}/.zsh/grml-etc-core/etc/zsh/zshrc # just type 'cd ...' to get 'cd ../..' rationalise-dot() { if [[ $LBUFFER == *.. ]] ; then LBUFFER+=/.. else LBUFFER+=. fi } zle -N rationalise-dot bindkey . rationalise-dot bindkey '\eq' push-line-or-edit zstyle ':completion:*:*:cd:*:directory-stack' menu yes select #f1# Reload zsh setup reload() { if [[ "$#*" -eq 0 ]] ; then [[ -r ~/.zshrc ]] && . ~/.zshrc else local fn for fn in "$@"; do unfunction $fn autoload -U $fn done fi } compdef _functions reload function zurl() { [[ -z $1 ]] && { print "USAGE: zurl " ; return 1 } local PN url tiny grabber search result preview PN=${0} url=$1 # Check existence of given URL with the help of ping(1). # N.B. ping(1) only works without an eventual given protocol. ping -c 1 ${${url#(ftp|http)://}%%/*} >& /dev/null || \ read -q "?Given host ${${url#http://*/}%/*} is not reachable by pinging. Proceed anyway? [y|n] " if (( $? == 0 )) ; then # Prepend 'http://' to given URL where necessary for later output. [[ ${url} != http(s|)://* ]] && url='http://'${url} tiny='http://tinyurl.com/create.php?url=' if check_com -c wget ; then grabber='wget -O- -o/dev/null' else print "wget is not available, but mandatory for ${PN}. Aborting." fi # Looking for i.e.`copy('http://tinyurl.com/7efkze')' in TinyURL's HTML code. search='copy\(?http://tinyurl.com/[[:alnum:]]##*' result=${(M)${${${(f)"$(${=grabber} ${tiny}${url})"}[(fr)${search}*]}//[()\';]/}%%http:*} # TinyURL provides the rather new feature preview for more confidence. preview='http://preview.'${result#http://} printf '%s\n\n' "${PN} - Shrinking long URLs via webservice TinyURL ." printf '%s\t%s\n\n' 'Given URL:' ${url} printf '%s\t%s\n\t\t%s\n' 'TinyURL:' ${result} ${preview} else return 1 fi } ## END OF FILE ################################################################# # Local variables: # mode: sh # End: