summaryrefslogtreecommitdiff
path: root/lib/functions.zsh
diff options
context:
space:
mode:
authorFredrik Appelberg <fredrik.appelberg@gmail.com>2011-02-16 10:40:57 +0100
committerFredrik Appelberg <fredrik.appelberg@gmail.com>2011-02-16 10:40:57 +0100
commitbbde258141acef4174f4e3184517af6705fd5939 (patch)
treeda5e04aff3efd1a533ed8156c4d267d9e09502ef /lib/functions.zsh
parent792e50c917b7c854fbcadbce10a895ab7fbaa7ec (diff)
parent01b0366f3e27cf30f3882870100f14625fc267d1 (diff)
downloadzsh-bbde258141acef4174f4e3184517af6705fd5939.tar.gz
zsh-bbde258141acef4174f4e3184517af6705fd5939.tar.bz2
zsh-bbde258141acef4174f4e3184517af6705fd5939.zip
Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh
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
+}
+