@@ -3329,97 +3329,14 @@ function trans () {
33293329function 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