#! /bin/sh # utility.sh # Miscellaneous Utility Functions unkey_host () { [ ${#} -ne 1 ] && return 1 sed -i -e "/$1/d" $HOME/.ssh/known_hosts } err () { if ( command -v ruby > /dev/null 2>&1 ); then ruby -e "puts Errno.constants.find_all{|err| eval('Errno::' + err + '::Errno') == $@ }" elif [ -e /usr/include/errno.h ] ; then cpp -dM /usr/include/errno.h | grep -w "E.* $@" fi if ( command -v perl > /dev/null 2>&1 ) ; then perl -MPOSIX -e 'print strerror($ARGV[0])."\n";' $@ elif ( command -v python > /dev/null 2>&1 ) ; then python -c "import os;print(os.strerror($@))" fi } mkcd () { if [ -d "$1" ] ; then cd "$1" return fi mkdir -p "$1" && cd "$1" } extract () { if ( command -v aunpack > /dev/null 2>&1 ) ; then aunpack "${1}" return fi if [ ! -f "$1" ] ; then echo "The file ("$1") does not exist!" return fi filename=`echo "$1" | tr '[:upper:]' '[:lower:]'` case "$filename" in *.tar) tar xf "${1}" ;; *.gz|*.z) gzip -dc "${1}" > `basename "${1%.*}"` ;; *.tar.gz|*.tgz|*.tz) gzip -dc "${1}" | tar xf - ;; *.Z) uncompress -c "${1}" > `basename "${1%.*}"` ;; *.tar.z|*.tar.Z|*.taz) uncompress -c "${1}" | tar xf - ;; *.bz2|*.bz) bzip2 -dc "${1}" > `basename "${1%.*}"` ;; *.tar.bz2|*.tbz2|*.tbz) bzip2 -dc "${1}" | tar xf - ;; *.7z) 7zr x "${1}" ;; *.tar.7z|*.t7z) 7zr x -so "${1}" | tar xf - ;; *.lzma) lzma -dc "${1}" > `basename "${1%.*}"` ;; *.tar.lzma|*.tlz) lzma -dc "${1}" | tar xf - ;; *.xz) xz -dc "${1}" > `basename "${1%.*}"` ;; *.tar.xz|*.txz) xz -dc "${1}" | tar xf - ;; *.a|*.deb) ar x "${1}" ;; *.ace) unace x "${1}" ;; *.arj) arj x "${1}" ;; *.cpio) cpio -id < "${1}" ;; *.rpm) rpm2cpio "${1}" | cpio -id ;; *.lha|*.lzh) lha xqf "${1}" ;; *.rar) unrar x -idq "${1}" ;; *.rz) rzip -d -f -k "${1}" ;; *.zip|*.jar) unzip -qo "${1}" ;; *.zoo) zoo x "${1}" ;; *) echo "Unable to extract '"$1"'" return 1 ;; esac return $? } # vim: set ft=sh ts=3 sw=3 et: