dots/commonsh/10_utility

75 lines
1.2 KiB
Text
Raw Normal View History

# utility.sh
# Miscellaneous Utility Functions
function unkey-host ()
{
[ ${#} -ne 1 ] && return 1
sed -i -e "/$1/d" $HOME/.ssh/known_hosts
}
function mkcd ()
{
if [[ -d "$1" ]] ; then
cd "$1"
return
fi
mkdir -p "$1" && cd "$1"
}
function extract ()
{
if [[ ! -f "$1" ]] ; then
echo "The file ("$1") does not exist!"
return
fi
local filename
filename=$(echo "$1" | tr '[:upper:]' '[:lower:]')
case "$filename" in
*.tar)
tar xf "${1}"
;;
*.tar.gz|*.tgz|*.tar.z)
tar zxf "${1}"
;;
*.tar.bz2|*.tbz2)
tar jxf "${1}"
;;
*.zip|*.jar)
unzip -qo "${1}"
;;
*.gz|*.z)
gzip -dc "${1}" > $(basename "${1%.*}")
;;
*.bz2)
bzip2 -dc "${1}" > $(basename "${1%.*}")
;;
*.rar)
unrar x -idq "${1}"
;;
*.lha|*.lzh)
lha xqf "${1}"
;;
*.a|*.deb)
ar x "${1}"
;;
*.tar.lzma)
lzma -dc "${1}" | tar xf
;;
*.lzma)
lzma -dc "${1}" > $(basename "${1%.*}")
;;
*)
echo "Unable to extract '"$1"'"
return 1
;;
esac
return $?
}
# vim: set ft=sh ts=3 sw=3 et: