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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file starz-0.2.5.tar.gz
.
File metadata
- Download URL: starz-0.2.5.tar.gz
- Upload date:
- Size: 9.7 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ee4e8f37ada9edad55353c5c1396361b2623f6213cf80fe18bdf2373a6282d5 |
|
MD5 | c8231cfe57f15e273da6cfe1bf09f4a5 |
|
BLAKE2b-256 | 4f8b41b3bf6cc5fd1d7501de64af625640becd3084bbe4bad7408aa8832461ff |