pack : add support for xz and gz types.
This commit is contained in:
parent
c9eb75335a
commit
b20b55531f
|
@ -42,6 +42,11 @@ pack()
|
|||
"zip")
|
||||
_pack_zip "${@}"
|
||||
;;
|
||||
"gz")
|
||||
_pack_gz "${@}"
|
||||
;;
|
||||
"xz")
|
||||
_pack_xz "${@}"
|
||||
esac
|
||||
|
||||
# actions on error.
|
||||
|
@ -81,6 +86,9 @@ unpack()
|
|||
# unpack file type.
|
||||
local type="${target##*.}"
|
||||
|
||||
[[ "${target}" =~ .tar.gz$ ]] && type="tar.gz"
|
||||
[[ "${target}" =~ .tar.xz$ ]] && type="tar.xz"
|
||||
|
||||
# unpack content.
|
||||
case "${type,,}" in
|
||||
"zip")
|
||||
|
@ -89,10 +97,10 @@ unpack()
|
|||
"7z")
|
||||
_unpack_7z "${target}"
|
||||
;;
|
||||
"tgz"|"gz")
|
||||
"tgz"|"tar.gz")
|
||||
_unpack_tgz "${target}"
|
||||
;;
|
||||
"txz"|"xz")
|
||||
"txz"|"tar.xz")
|
||||
_unpack_txz "${target}"
|
||||
;;
|
||||
"tar")
|
||||
|
@ -104,6 +112,12 @@ unpack()
|
|||
"rar")
|
||||
_unpack_rar "${target}"
|
||||
;;
|
||||
"xz")
|
||||
_unpack_xz "${target}"
|
||||
;;
|
||||
"gz")
|
||||
_unpack_gz "${target}"
|
||||
;;
|
||||
*)
|
||||
echo -e "${color_yellow}${target}: format not supported.${color_default}"
|
||||
return 2
|
||||
|
@ -152,40 +166,60 @@ _pack_tar()
|
|||
tar -c "${@:2}" | pv -s $(du -csb "${@:2}" | sed -n -e '$p' | awk '{print $1}') > "${1}"
|
||||
}
|
||||
|
||||
_pack_gz()
|
||||
{
|
||||
pv "${2}" | gzip -1 > "${1}"
|
||||
}
|
||||
|
||||
_pack_xz()
|
||||
{
|
||||
pv "${2}" | xz -9e > "${1}"
|
||||
}
|
||||
|
||||
_unpack_zip()
|
||||
{
|
||||
unzip "${@}"
|
||||
unzip "${1}"
|
||||
}
|
||||
|
||||
_unpack_7z()
|
||||
{
|
||||
7za x "${@}"
|
||||
7za x "${1}"
|
||||
}
|
||||
|
||||
_unpack_tgz()
|
||||
{
|
||||
pv "${@}" | gzip -d | tar -xf -
|
||||
pv "${1}" | gzip -d | tar -xf -
|
||||
}
|
||||
|
||||
_unpack_txz()
|
||||
{
|
||||
pv "${@}" | xz -d | tar -xf -
|
||||
pv "${1}" | xz -d | tar -xf -
|
||||
}
|
||||
|
||||
_unpack_tar()
|
||||
{
|
||||
pv "${@}" | tar -xf -
|
||||
pv "${1}" | tar -xf -
|
||||
}
|
||||
|
||||
_unpack_iso()
|
||||
{
|
||||
7za x "${@}"
|
||||
7za x "${1}"
|
||||
}
|
||||
|
||||
_unpack_rar()
|
||||
{
|
||||
unrar x "${@}"
|
||||
unrar x "${1}"
|
||||
}
|
||||
|
||||
_unpack_gz()
|
||||
{
|
||||
pv "${1}" | gzip -d > "${1%.gz}"
|
||||
}
|
||||
|
||||
_unpack_xz()
|
||||
{
|
||||
pv "${1}" | xz -d > "${1%.xz}"
|
||||
}
|
||||
|
||||
# export functions.
|
||||
export -f pack unpack _pack_tgz _pack_txz _pack_tar _pack_zip _unpack_zip _unpack_7z _unpack_tgz _unpack_txz _unpack_tar _pack_error _unpack_iso _unpack_rar
|
||||
export -f pack unpack _pack_tgz _pack_txz _pack_tar _pack_zip _unpack_zip _unpack_7z _unpack_tgz _unpack_txz _unpack_tar _pack_error _unpack_iso _unpack_rar _pack_gz _pack_xz _unpack_gz _unpack_xz
|
||||
|
|
Reference in a new issue