Skip to content

Commit 1fb5192

Browse files
committed
zshrc: simple-extract() use unp for all archive types
1 parent b8f245b commit 1fb5192

File tree

1 file changed

+7
-118
lines changed

1 file changed

+7
-118
lines changed

etc/zsh/zshrc

+7-118
Original file line numberDiff line numberDiff line change
@@ -3329,97 +3329,14 @@ function trans () {
33293329
function simple-extract () {
33303330
emulate -L zsh
33313331
setopt extended_glob noclobber
3332-
local ARCHIVE DELETE_ORIGINAL DECOMP_CMD USES_STDIN USES_STDOUT GZTARGET WGET_CMD
3332+
local ARCHIVE DELETE_ORIGINAL DECOMP_CMD WGET_CMD
33333333
local RC=0
33343334
zparseopts -D -E "d=DELETE_ORIGINAL"
33353335
for ARCHIVE in "${@}"; do
3336-
case $ARCHIVE in
3337-
*(tar.bz2|tbz2|tbz))
3338-
DECOMP_CMD="tar -xvjf -"
3339-
USES_STDIN=true
3340-
USES_STDOUT=false
3341-
;;
3342-
*(tar.gz|tgz))
3343-
DECOMP_CMD="tar -xvzf -"
3344-
USES_STDIN=true
3345-
USES_STDOUT=false
3346-
;;
3347-
*(tar.xz|txz|tar.lzma))
3348-
DECOMP_CMD="tar -xvJf -"
3349-
USES_STDIN=true
3350-
USES_STDOUT=false
3351-
;;
3352-
*tar.zst)
3353-
DECOMP_CMD="tar --zstd -xvf -"
3354-
USES_STDIN=true
3355-
USES_STDOUT=false
3356-
;;
3357-
*tar.lrz)
3358-
DECOMP_CMD="lrzuntar"
3359-
USES_STDIN=false
3360-
USES_STDOUT=false
3361-
;;
3362-
*tar)
3363-
DECOMP_CMD="tar -xvf -"
3364-
USES_STDIN=true
3365-
USES_STDOUT=false
3366-
;;
3367-
*rar)
3368-
DECOMP_CMD="unrar x"
3369-
USES_STDIN=false
3370-
USES_STDOUT=false
3371-
;;
3372-
*lzh)
3373-
DECOMP_CMD="lha x"
3374-
USES_STDIN=false
3375-
USES_STDOUT=false
3376-
;;
3377-
*7z)
3378-
DECOMP_CMD="7z x"
3379-
USES_STDIN=false
3380-
USES_STDOUT=false
3381-
;;
3382-
*(zip|jar))
3383-
DECOMP_CMD="unzip"
3384-
USES_STDIN=false
3385-
USES_STDOUT=false
3386-
;;
3387-
*deb)
3388-
DECOMP_CMD="ar -x"
3389-
USES_STDIN=false
3390-
USES_STDOUT=false
3391-
;;
3392-
*bz2)
3393-
DECOMP_CMD="bzip2 -d -c -"
3394-
USES_STDIN=true
3395-
USES_STDOUT=true
3396-
;;
3397-
*(gz|Z))
3398-
DECOMP_CMD="gzip -d -c -"
3399-
USES_STDIN=true
3400-
USES_STDOUT=true
3401-
;;
3402-
*(xz|lzma))
3403-
DECOMP_CMD="xz -d -c -"
3404-
USES_STDIN=true
3405-
USES_STDOUT=true
3406-
;;
3407-
*zst)
3408-
DECOMP_CMD="zstd -d -c -"
3409-
USES_STDIN=true
3410-
USES_STDOUT=true
3411-
;;
3412-
*lrz)
3413-
DECOMP_CMD="lrunzip -"
3414-
USES_STDIN=true
3415-
USES_STDOUT=true
3416-
;;
3417-
*)
3418-
print "ERROR: '$ARCHIVE' has unrecognized archive type." >&2
3419-
RC=$((RC+1))
3420-
continue
3421-
;;
3422-
esac
3336+
# Use unp for all archive types
3337+
DECOMP_CMD="unp"
3338+
USES_STDIN=false
3339+
USES_STDOUT=false
34233340

34243341
if ! check_com ${DECOMP_CMD[(w)1]}; then
34253342
echo "ERROR: ${DECOMP_CMD[(w)1]} not installed." >&2
@@ -3429,21 +3346,7 @@ function simple-extract () {
34293346

34303347
GZTARGET="${ARCHIVE:t:r}"
34313348
if [[ -f $ARCHIVE ]] ; then
3432-
3433-
print "Extracting '$ARCHIVE' ..."
3434-
if $USES_STDIN; then
3435-
if $USES_STDOUT; then
3436-
${=DECOMP_CMD} < "$ARCHIVE" > $GZTARGET
3437-
else
3438-
${=DECOMP_CMD} < "$ARCHIVE"
3439-
fi
3440-
else
3441-
if $USES_STDOUT; then
3442-
${=DECOMP_CMD} "$ARCHIVE" > $GZTARGET
3443-
else
3444-
${=DECOMP_CMD} "$ARCHIVE"
3445-
fi
3446-
fi
3349+
${=DECOMP_CMD} "$ARCHIVE"
34473350
[[ $? -eq 0 && -n "$DELETE_ORIGINAL" ]] && rm -f "$ARCHIVE"
34483351

34493352
elif [[ "$ARCHIVE" == (#s)(https|http|ftp)://* ]] ; then
@@ -3459,21 +3362,7 @@ function simple-extract () {
34593362
continue
34603363
fi
34613364
print "Downloading and Extracting '$ARCHIVE' ..."
3462-
if $USES_STDIN; then
3463-
if $USES_STDOUT; then
3464-
${=WGET_CMD} "$ARCHIVE" | ${=DECOMP_CMD} > $GZTARGET
3465-
RC=$((RC+$?))
3466-
else
3467-
${=WGET_CMD} "$ARCHIVE" | ${=DECOMP_CMD}
3468-
RC=$((RC+$?))
3469-
fi
3470-
else
3471-
if $USES_STDOUT; then
3472-
${=DECOMP_CMD} =(${=WGET_CMD} "$ARCHIVE") > $GZTARGET
3473-
else
3474-
${=DECOMP_CMD} =(${=WGET_CMD} "$ARCHIVE")
3475-
fi
3476-
fi
3365+
${=DECOMP_CMD} =(${=WGET_CMD} "$ARCHIVE")
34773366

34783367
else
34793368
print "ERROR: '$ARCHIVE' is neither a valid file nor a supported URI." >&2

0 commit comments

Comments
 (0)