git-archive: make compression level of ZIP archives configurable
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
39345a216f
commit
854c4168e7
@ -42,5 +42,6 @@ extern void parse_pathspec_arg(const char **pathspec,
|
||||
*/
|
||||
extern int write_tar_archive(struct archiver_args *);
|
||||
extern int write_zip_archive(struct archiver_args *);
|
||||
extern void *parse_extra_zip_args(int argc, const char **argv);
|
||||
|
||||
#endif /* ARCHIVE_H */
|
||||
|
@ -15,8 +15,15 @@ static const char archive_usage[] = \
|
||||
"git-archive --format=<fmt> [--prefix=<prefix>/] [<extra>] <tree-ish> [path...]";
|
||||
|
||||
struct archiver archivers[] = {
|
||||
{ .name = "tar", .write_archive = write_tar_archive },
|
||||
{ .name = "zip", .write_archive = write_zip_archive },
|
||||
{
|
||||
.name = "tar",
|
||||
.write_archive = write_tar_archive,
|
||||
},
|
||||
{
|
||||
.name = "zip",
|
||||
.write_archive = write_zip_archive,
|
||||
.parse_extra = parse_extra_zip_args,
|
||||
},
|
||||
};
|
||||
|
||||
static int run_remote_archiver(struct archiver *ar, int argc,
|
||||
|
@ -379,3 +379,16 @@ int write_zip_archive(struct archiver_args *args)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *parse_extra_zip_args(int argc, const char **argv)
|
||||
{
|
||||
for (; argc > 0; argc--, argv++) {
|
||||
const char *arg = argv[0];
|
||||
|
||||
if (arg[0] == '-' && isdigit(arg[1]) && arg[2] == '\0')
|
||||
zlib_compression_level = arg[1] - '0';
|
||||
else
|
||||
die("Unknown argument for zip format: %s", arg);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user