summaryrefslogtreecommitdiff
path: root/lib/functions.zsh
diff options
context:
space:
mode:
authorRobby Russell <robby@planetargon.com>2011-01-15 01:17:29 -0800
committerRobby Russell <robby@planetargon.com>2011-01-15 01:17:29 -0800
commitf02e732543872814adb52439fbfff3e247cc49d0 (patch)
tree8f98c5857829182ae2e3fc02883ded0e0fb4559c /lib/functions.zsh
parent8da8d45236f10199f41ddd8ec1d543b8cb3c0473 (diff)
parentbeb980d37013ee9cf5f2fdd4f19444f7f7a77fcf (diff)
downloadzsh-f02e732543872814adb52439fbfff3e247cc49d0.tar.gz
zsh-f02e732543872814adb52439fbfff3e247cc49d0.tar.bz2
zsh-f02e732543872814adb52439fbfff3e247cc49d0.zip
Merge branch 'master' of https://github.com/SuprDewd/oh-my-zsh into SuprDewd-master
Diffstat (limited to 'lib/functions.zsh')
-rw-r--r--lib/functions.zsh36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh
index e3c0de43e..914f2ef25 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -37,3 +37,39 @@ function take() {
mkdir -p $1
cd $1
}
+
+function extract() {
+ unset REMOVE_ARCHIVE
+
+ if test "$1" = "-r"; then
+ REMOVE=1
+ shift
+ fi
+ if [[ -f $1 ]]; then
+ case $1 in
+ *.tar.bz2) tar xvjf $1;;
+ *.tar.gz) tar xvzf $1;;
+ *.tar.xz) tar xvJf $1;;
+ *.tar.lzma) tar --lzma -xvf $1;;
+ *.bz2) bunzip $1;;
+ *.rar) unrar $1;;
+ *.gz) gunzip $1;;
+ *.tar) tar xvf $1;;
+ *.tbz2) tar xvjf $1;;
+ *.tgz) tar xvzf $1;;
+ *.zip) unzip $1;;
+ *.Z) uncompress $1;;
+ *.7z) 7z x $1;;
+ *) echo "'$1' cannot be extracted via >extract<";;
+ esac
+
+ if [[ $REMOVE_ARCHIVE -eq 1 ]]; then
+ echo removing "$1";
+ /bin/rm "$1";
+ fi
+
+ else
+ echo "'$1' is not a valid file"
+ fi
+}
+