It would be nice to have a simple CLI that supports a limited subset of the regular zip program's interface. This means that Python-based projects can specify a dependency on this CLI, as opposed to tools like timo-reymann/deterministic-zip which need to be specified and installed some other way.
❯ zip --help
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
The default action is to add or replace zipfile entries from list, which
can include the special name - to compress standard input.
If zipfile and list are omitted, zip compresses stdin to stdout.
-f freshen: only changed files -u update: only changed or new files
-d delete entries in zipfile -m move into zipfile (delete OS files)
-r recurse into directories -j junk (don't record) directory names
-0 store only -l convert LF to CR LF (-ll CR LF to LF)
-1 compress faster -9 compress better
-q quiet operation -v verbose operation/print version info
-c add one-line comments -z add zipfile comment
-@ read names from stdin -o make zipfile as old as latest entry
-x exclude the following names -i include only the following names
-F fix zipfile (-FF try harder) -D do not add directory entries
-A adjust self-extracting exe -J junk zipfile prefix (unzipsfx)
-T test zipfile integrity -X eXclude eXtra file attributes
-y store symbolic links as the link instead of the referenced file
-e encrypt -n don't compress these suffixes
-h2 show more help
It would be nice to have a simple CLI that supports a limited subset of the regular
zip
program's interface. This means that Python-based projects can specify a dependency on this CLI, as opposed to tools like timo-reymann/deterministic-zip which need to be specified and installed some other way.It does seem like a Python command-line program exists, so there's less need in the ecosystem for this package to include one: https://github.com/bboe/deterministic_zip/tree/main
Reference
Additional reference:
man zip
Functionality to implement
Consider supporting these options, in decreasing order of importance
zipfile list
basic arguments-j
junk directory names option-0
through-9
compression levels-r
recursive option-x
and-i
exclude and include optionsCLI Framework Options