diff options
author | NanoTech <nanotech008@gmail.com> | 2011-02-05 23:51:05 -0600 |
---|---|---|
committer | NanoTech <nanotech008@gmail.com> | 2011-02-05 23:51:05 -0600 |
commit | 143dd165e973a3559fbc1b085f1ff05e263f85b0 (patch) | |
tree | 25aa67cf40f468d658ec6f37657e8efa3c128ef8 /lib/functions.zsh | |
parent | 2a203b558fd6328c9a91e9dbbf145d91e7ba7ed1 (diff) | |
parent | 01b0366f3e27cf30f3882870100f14625fc267d1 (diff) | |
download | zsh-143dd165e973a3559fbc1b085f1ff05e263f85b0.tar.gz zsh-143dd165e973a3559fbc1b085f1ff05e263f85b0.tar.bz2 zsh-143dd165e973a3559fbc1b085f1ff05e263f85b0.zip |
Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh
Diffstat (limited to 'lib/functions.zsh')
-rw-r--r-- | lib/functions.zsh | 36 |
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 +} + |