Looking at your code in kiss, I wonder if it wouldn't be more effective to use something like uextract to split out the source package to workable code.
To quote the author 'SFR' :"In order to ease unpacking of various archive formats, I forged One Script to Rule Them All (well, at least most of them Wink ). "
Especially since uextract can work with command lines the likes of >
The package manager only automatically extracts `tar archives. Other archive formats can be handled by the build script. I don't think this is needed. :+1:
Looking at your code in kiss, I wonder if it wouldn't be more effective to use something like uextract to split out the source package to workable code.
To quote the author 'SFR' :"In order to ease unpacking of various archive formats, I forged One Script to Rule Them All (well, at least most of them Wink ). "
Especially since uextract can work with command lines the likes of >
uextract -o /root/somedir archive.tar.gz arch2.7z somepkg.rpm
UExtract will automatically make use of the following tools, when available:
Supported, though not extensively tested at this point, formats/extensions are:
.?? .2fs .3fs .3gp .4fs .7z .7z.001 .7zip .a .a[0-9][0-9] .a2theme .ace .acp .adz .aes .ai .alz .amf .ani .apk .aplp .app .appimage .apz .ar .arc .arj .Arch00 .arduboy .ark .asc .asd .au .avastsounds .avi .azw2 .b64 .baklz4 .balz .bau .bbb .bdoc .bfe .bgz .bin .blend .bmp .bmz .br .bxy .bz .bz2 .bzip .bzip2 .cab .capx .cb7 .cba .cbr .cbt .cbz .cdmtz .cdmz .cfs .cgz .chm .chrt .cld .cpgz .cpio .cpio.7z .cpio.br .cpio.bz .cpio.bz2 .cpio.bzip .cpio.bzip2 .cpio.f .cpio.gz .cpio.gzip .cpio.lrz .cpio.lz .cpio.lz4 .cpio.lzma .cpio.lzo .cpio.xz .cpio.z .cpio.zip .cpio.zst .cpk .cpl .cpt .cramfs .crf .crx .ctb .ctx .ctz .cur .cvd .cxarchive .d64 .d81 .daa .dar .dat .dazip .db .db3 .dbk .deb .depot.gz .dia .disk .divx .djvu .dll .dmg .dms .docx .dotx .dsk .dsl .dz .ear .eaz .ecs .ecsbx .efossil .eftx .egg .emerald .eml .emz .eopkg .epk .epub .esriaddin .exe .ext2 .ext3 .ext4 .f .f3d .f3z .fat .fb2k-component .fcstd .flac .flf .flp .flv .flzp .fossil .fp8 .fsl .fwp .fzbz .fzpz .fzz .g3x .gadget .gc .gem .gg .gif .gifar .gmz .gnumeric .gnutar .goomod .gpg .gps .graphmlz .gst .gszip .gtar .gtp .gz .gz2 .gzi .gzip .ha .hc .hfs .hfv .hid .hme .hmxz .hqx .htmlz .htz .hwp .i5z .iar .icl .ico .igz .ima .img .imz .ip .ipa .ipcc .ipg .ipk .ipsw .iso .ita .itz .iwd .ja .jar .jgz .jic .jpeg .jpg .jsonlz4 .kfo .kgb .kmz .kpr .ksf .ksp .kwd .lbr .lca .lemon .lep .lha .libzip .little .liz .lnx .love .lpaq1 .lpaq8 .lpk .lpkg .lrz .lxf .lz .lz4 .lza .lzfse .lzh .lzm .lzma .lzo .lzx .maff .mar .mbox .mbz .mcgame .mct .mcworld .mdf .mds .mdz .mdzip .mga .mht .mhtml .mim .mime .mkv .mmip .mo .mov .mozlz4 .mp3 .mp4 .mpeg .mpg .mpk .mpkg .mpz .mpzip .mscz .msg .msi .msp .msu .mxl .mzp .mzz .nbf .nbm .ndr .nex .nfl .ngr .nif .nlr .nrg .nsis .ntfs .nth .nupkg .nz .oar .obt .odb .odc .odf .odg .odi .odm .odp .ods .odt .oex .ogg .ogv .ogz .onepkg .opk .orb .otg .oth .otp .ots .ott .ova .ovp .oxt .p2s .p2a.backup .pack .package .pak .paq8l .paq8n .paq8o .par .pat .pax .pbi .pbp .pcv .pdf .pet .pfs .pgp .phar .pigm .pigs .pisi .piz .pk3 .pk4 .pkg .pmlz .png .potx .pptx .prg .psz .pup .pvga .pxz .qch .qcow .qcow2 .qcow2c .qpk .qpr .qtz .quad .quiz .r[0-9] .r[0-9][0-9] .rar .rar5 .ReaperThemeZip .rmskin .rp9 .rpm .rsn .rub .run .rz .s3z .safariextz .sam .sar .sb .sbx .scm .scr .sdi .sdk .sdz .sfe .sfg .sfs .sfx .sh2 .sh3d .sh3f .sh3t .shar .shk .shr .sifz .sle .slm .slp .smzip .snap .snappy .snz .sob .sox .spack .spk .spm .sqf .sqfs .sqlar .sqlite .sqlite3 .sqsh .squashfs .srm .stc .std .sti .stpZ .studyarch .stw .styx .sublime-package .sue .svgz .swf .swm .sxc .sxd .sxg .sxi .sxm .sxw .sys .sz .tar .tar.7z .tar.br .tar.bz .tar.bz2 .tar.bzip .tar.bzip2 .tardist .tar.f .tar.gz .tar.gz2 .tar.gzip .tar.lrz .tar.lz .tar.lz4 .tar.lzma .tar.lzo .tar.md5 .tar.xz .tarz .tar.z .tar.zip .tar.zst .taz .tazpkg .tb2 .tbz .tbz2 .tc .tce .tcel .tcem .tcx .tcz .tg .tgz .themepack .thm .thmx .tlrz .tlz .tlz4 .tlzma .tnef .tor .tpkg .tpxz .ts .tsk .twz .twzip .txz .tz .tzma .tzo .tzst .u .u3p .uax .udeb .udf .unitypackage .upx .usfs .ustar .utz .uu .uue .vbox-extpack .vc .vdi .vfd .vgz .vhd .vmdk .vmg .vob .vpk .wa .wal .war .wav .wba .wbm .webm .webz .wgt .wgz .whl .widget .wim .wlz .wma .wmd .wmga .wmv .wmz .wot .wrz .wsp .wsz .wv .x3d .xap .xapk .xar .xbps .xcfbz2 .xcfgz .xjt .xjtbz2 .xjtgz .xlam .xlsm .xlsx .xltx .xmcdz .xmz .xo .xpi .xrns .xsn .xwp .xx .xxe .xz .xzm .Z .z .z[0-9][0-9] .zab .zabw .zad .zds .zfsendtotarget .zi .zi .zim .zip .zipx .zl .zlib .zm9 .zoo .zpaq .zpi .zst .ztd .zxp .zz
and there is a simple drag-n-drop gui also available when a window system is running.
There's an equivelent called "packit" to go the other way.
We use it extensively in puppylinux.
UExtract contains the following translations:
This is our link, http://www.murga-linux.com/puppy/viewtopic.php?t=87864
We do have other ways of unpacking multiple sources by using case statements, but this is the easiest to use nowadays,
just a thought