4 #include "parse-options.h"
 
   8 static char const * const builtin_multi_pack_index_usage[] = {
 
   9         N_("git multi-pack-index [<options>] (write|verify|expire|repack --batch-size=<size>)"),
 
  13 static struct opts_multi_pack_index {
 
  14         const char *object_dir;
 
  15         unsigned long batch_size;
 
  19 int cmd_multi_pack_index(int argc, const char **argv,
 
  24         static struct option builtin_multi_pack_index_options[] = {
 
  25                 OPT_FILENAME(0, "object-dir", &opts.object_dir,
 
  26                   N_("object directory containing set of packfile and pack-index pairs")),
 
  27                 OPT_BOOL(0, "progress", &opts.progress, N_("force progress reporting")),
 
  28                 OPT_MAGNITUDE(0, "batch-size", &opts.batch_size,
 
  29                   N_("during repack, collect pack-files of smaller size into a batch that is larger than this size")),
 
  33         git_config(git_default_config, NULL);
 
  35         opts.progress = isatty(2);
 
  36         argc = parse_options(argc, argv, prefix,
 
  37                              builtin_multi_pack_index_options,
 
  38                              builtin_multi_pack_index_usage, 0);
 
  41                 opts.object_dir = get_object_directory();
 
  43                 flags |= MIDX_PROGRESS;
 
  46                 usage_with_options(builtin_multi_pack_index_usage,
 
  47                                    builtin_multi_pack_index_options);
 
  50                 die(_("too many arguments"));
 
  54         trace2_cmd_mode(argv[0]);
 
  56         if (!strcmp(argv[0], "repack"))
 
  57                 return midx_repack(the_repository, opts.object_dir,
 
  58                         (size_t)opts.batch_size, flags);
 
  60                 die(_("--batch-size option is only for 'repack' subcommand"));
 
  62         if (!strcmp(argv[0], "write"))
 
  63                 return write_midx_file(opts.object_dir, flags);
 
  64         if (!strcmp(argv[0], "verify"))
 
  65                 return verify_midx_file(the_repository, opts.object_dir, flags);
 
  66         if (!strcmp(argv[0], "expire"))
 
  67                 return expire_midx_packs(the_repository, opts.object_dir, flags);
 
  69         die(_("unrecognized subcommand: %s"), argv[0]);