diff options
Diffstat (limited to 'scripts/extract.sh')
| -rw-r--r-- | scripts/extract.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/scripts/extract.sh b/scripts/extract.sh new file mode 100644 index 00000000..1ffc23f8 --- /dev/null +++ b/scripts/extract.sh @@ -0,0 +1,18 @@ +file=$1 +shift + +case $file in +*.tar.gz|*.tgz) tool=gzip ;; +*.tar.bz2) tool=bzip2 ;; +*.tar.xz) tool=xz ;; +*) exit 0 +esac + +if command -v bsdtar >/dev/null; then + exec bsdtar -xf "$file" "$@" +elif command -v pax >/dev/null; then + "$tool" -d -c "$file" | pax "$@" +else + printf '%s: bsdtar or pax is required' "$0" >&2 + exit 1 +fi |
