Skip to main content

Sized Tape ARchiveZ

Project description

starz

Sized Tape ARchiveZ

This small command line tool creates sized (gzipped) tar files from either a (gzipped) tar or a directory.

The 'raison d'être' of this tool is because GitHub Packages limits the layer size of a docker container to 5GB. This poses a problem when one needs to install huge tarballs (eg: PetaLinux, vivado, ...)

The Unix split command will not do as each resulting 'split' is not individual un-tar-able, and after a cat of the individual parts, we violate the 5GB layer constraint again.

GitHub Conda Supported Python versions Code style: black

CI codecov CD

GitHub release (latest SemVer) PyPI Conda (channel only)

GitHub issues

Installation

conda

(conda-forge) me@mybox$ conda install starz

pip

me@mybox$ pip install starz
Collecting starz
  Downloading starz-0.2.1.tar.gz (9.1 kB)
Collecting tqdm
  Downloading tqdm-4.56.2-py2.py3-none-any.whl (72 kB)
     |████████████████████████████████| 72 kB 569 kB/s 
Collecting filetype
  Downloading filetype-1.0.7-py2.py3-none-any.whl (15 kB)
Building wheels for collected packages: starz
  Building wheel for starz (setup.py) ... done
  Created wheel for starz: ...
  Stored in directory: ...
Successfully built starz
Installing collected packages: tqdm, filetype, starz
Successfully installed filetype-1.0.7 starz-0.2.1 tqdm-4.56.2
me@mybox:~$ 

Usage

me@mybox$ starz --help
usage: starz [-h] -s SIZE [-c] [-q] [-v] SOURCE [DESTINATION]

Pack a directory or re-pack a .tag(.gz) file in smaller .tar(.gz) chunks.

positional arguments:
  SOURCE                path to either a .tar(.gz) file or a directory
  DESTINATION           destination directory (default is current working
                        directory)

optional arguments:
  -h, --help            show this help message and exit
  -s SIZE, --size SIZE  maximum size (eg. 5GB or 3.14MB)
  -c, --compress        compress (gzip) the resulting .tar files into .tar.gz
  -q, --quiet           surpress the progress bar
  -v, --version         print the version number
me@mybox$

re-packing a big gzipped-tar file in smaller non-compressed tar files :

me@mybox$ starz -s 15MB brol.tar.gz
brol.00.tar:  18%|█████                   | 2808448/15728640 [00:00<00:00, 30900007.82 Bytes/s]
brol.01.tar:  99%|███████████████████████▊| 15633123/15728640 [00:00<00:00, 223312287.21 Bytes/s]
brol.02.tar:  43%|███████████             | 6751263/15728640 [00:00<00:00, 151304825.55 Bytes/s]
me@mybox$ 

re-packing a bin gzipped-tar file in smaller gzipped-tar files :

me@mybox$ starz -c -s 15MB brol.tar.gz
brol.00.tar.gz:  18%|█████                   | 2808448/15728640 [00:00<00:00, 30900007.82 Bytes/s]
brol.01.tar.gz:  99%|███████████████████████▊| 15633123/15728640 [00:00<00:00, 223312287.21 Bytes/s]
brol.02.tar.gz:  43%|███████████             | 6751263/15728640 [00:00<00:00, 151304825.55 Bytes/s]
me@mybox$ 

same as above, but not outputting progress bar :

me@mybox$ starz -q -c -s 15MB brol.tar.gz
me@mybox$ 

packing the ./brol directory (recursively) in compressed-tar files with less than 15MB of content each:

me@mybox$ starz -c -s 15MB ./brol
brol.00.tar.gz:  18%|█████                   | 2808448/15728640 [00:00<00:00, 30900007.82 Bytes/s]
brol.01.tar.gz:  99%|███████████████████████▊| 15633123/15728640 [00:00<00:00, 223312287.21 Bytes/s]
brol.02.tar.gz:  43%|███████████             | 6751263/15728640 [00:00<00:00, 151304825.55 Bytes/s]
me@mybox$ 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

starz-0.2.6.tar.gz (9.8 kB view details)

Uploaded Source

File details

Details for the file starz-0.2.6.tar.gz.

File metadata

  • Download URL: starz-0.2.6.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for starz-0.2.6.tar.gz
Algorithm Hash digest
SHA256 5c46798089cad7f6c582ddcb05e3aa7eff1b43848a6c926a908d5073d402444c
MD5 9303ce214968018d85d1f8c21834cb44
BLAKE2b-256 f19e87ac455a42313a3d58dcaef6f9c44a737a763c275d3ff2f84d53f4cad640

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page