diff options
author | Ben Burwell <ben@benburwell.com> | 2019-08-13 14:40:54 -0400 |
---|---|---|
committer | Ben Burwell <ben@benburwell.com> | 2019-08-13 14:40:54 -0400 |
commit | c09d91fe95fca4367f47c06fc808cd02a1a8e6a5 (patch) | |
tree | 6c5c8dee0c219ab701dc1ff4c39e905dbac08e70 /templates/.bin/extract |
add bins
Diffstat (limited to 'templates/.bin/extract')
-rwxr-xr-x | templates/.bin/extract | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/templates/.bin/extract b/templates/.bin/extract new file mode 100755 index 0000000..e6831e4 --- /dev/null +++ b/templates/.bin/extract @@ -0,0 +1,38 @@ +#!/bin/sh + +# credit: http://nparikh.org/notes/zshrc.txt +# Usage: extract <file> +# Description: extracts archived files / mounts disk images +# Note: .dmg/hdiutil is Mac OS X-specific. + +do_autodetect () { + if file "$1" | grep -q 'Zip archive' ; then + unzip "$1" + else + echo "'$1' is not a recognized format" + fi +} + +# first use a simple extension-based approach +if [ -f "$1" ]; then + case $1 in + *.tar.bz2) tar -jxvf "$1" ;; + *.tar.gz) tar -zxvf "$1" ;; + *.bz2) bunzip2 "$1" ;; + *.dmg) hdiutil mount "$1" ;; + *.gz) gunzip "$1" ;; + *.tar) tar -xvf "$1" ;; + *.tbz2) tar -jxvf "$1" ;; + *.tgz) tar -zxvf "$1" ;; + *.zip) unzip "$1" ;; + *.ZIP) unzip "$1" ;; + *.pax) pax -r < "$1" ;; + *.pax.Z) uncompress "$1" --stdout | pax -r ;; + *.Z) uncompress "$1" ;; + + # if there is no recognized extension, try to auto-detect the file type + *) do_autodetect "$1" ;; + esac +else + echo "'$1' is not a valid file" +fi |