Skip to content

Commit

Permalink
Make builtin-pack-refs.c use parse_options.
Browse files Browse the repository at this point in the history
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
Pierre Habouzit authored and Junio C Hamano committed Oct 30, 2007
1 parent edefb1a commit b2565ae
Showing 1 changed file with 20 additions and 27 deletions.
47 changes: 20 additions & 27 deletions builtin-pack-refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
#include "refs.h"
#include "object.h"
#include "tag.h"

static const char builtin_pack_refs_usage[] =
"git-pack-refs [--all] [--prune | --no-prune]";
#include "parse-options.h"

struct ref_to_prune {
struct ref_to_prune *next;
Expand Down Expand Up @@ -117,31 +115,26 @@ static int pack_refs(unsigned int flags)
return 0;
}

static char const * const pack_refs_usage[] = {
"git-pack-refs [options]",
NULL
};

int cmd_pack_refs(int argc, const char **argv, const char *prefix)
{
int i;
unsigned int flags;

flags = PACK_REFS_PRUNE;
for (i = 1; i < argc; i++) {
const char *arg = argv[i];
if (!strcmp(arg, "--prune")) {
flags |= PACK_REFS_PRUNE; /* now the default */
continue;
}
if (!strcmp(arg, "--no-prune")) {
flags &= ~PACK_REFS_PRUNE;
continue;
}
if (!strcmp(arg, "--all")) {
flags |= PACK_REFS_ALL;
continue;
}
/* perhaps other parameters later... */
break;
}
if (i != argc)
usage(builtin_pack_refs_usage);

int all = 0, prune = 1;
unsigned int flags = 0;
struct option opts[] = {
OPT_BOOLEAN(0, "all", &all, "pack everything"),
OPT_BOOLEAN(0, "prune", &prune, "prune loose refs (default)"),
OPT_END(),
};

if (parse_options(argc, argv, opts, pack_refs_usage, 0))
usage_with_options(pack_refs_usage, opts);
if (prune)
flags |= PACK_REFS_PRUNE;
if (all)
flags |= PACK_REFS_ALL;
return pack_refs(flags);
}

0 comments on commit b2565ae

Please sign in to comment.