[PATCH 24/25] Make builtin-pack-refs.c use parse_options.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Pierre Habouzit <madcoder@xxxxxxxxxx>
---
 builtin-pack-refs.c |   47 ++++++++++++++++++++---------------------------
 1 files changed, 20 insertions(+), 27 deletions(-)

diff --git a/builtin-pack-refs.c b/builtin-pack-refs.c
index 09df4e1..a62f06b 100644
--- a/builtin-pack-refs.c
+++ b/builtin-pack-refs.c
@@ -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;
@@ -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);
 }
-- 
1.5.3.4.1231.g62b9a

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux