@@ -3329,97 +3329,14 @@ function trans () {
3329
3329
function simple-extract () {
3330
3330
emulate -L zsh
3331
3331
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
3333
3333
local RC=0
3334
3334
zparseopts -D -E " d=DELETE_ORIGINAL"
3335
3335
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
3423
3340
3424
3341
if ! check_com ${DECOMP_CMD[(w)1]} ; then
3425
3342
echo " ERROR: ${DECOMP_CMD[(w)1]} not installed." >&2
@@ -3429,21 +3346,7 @@ function simple-extract () {
3429
3346
3430
3347
GZTARGET=" ${ARCHIVE: t: r} "
3431
3348
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 "
3447
3350
[[ $? -eq 0 && -n " $DELETE_ORIGINAL " ]] && rm -f " $ARCHIVE "
3448
3351
3449
3352
elif [[ " $ARCHIVE " == (# s)(https|http|ftp)://* ]] ; then
@@ -3459,21 +3362,7 @@ function simple-extract () {
3459
3362
continue
3460
3363
fi
3461
3364
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 " )
3477
3366
3478
3367
else
3479
3368
print " ERROR: '$ARCHIVE ' is neither a valid file nor a supported URI." >&2
0 commit comments