All of lore.kernel.org
 help / color / mirror / Atom feed
From: "george espinoza via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: George Espinoza <gespinoz2019@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	george espinoza <gespinoz2019@gmail.com>
Subject: [PATCH 4/6] [Outreachy] check-ref-format: parse options
Date: Thu, 07 Nov 2019 08:09:58 +0000	[thread overview]
Message-ID: <0a1c8e2dea25d2e485cbf8350b08953ed33e96b7.1573114201.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.449.git.1573114201.gitgitgadget@gmail.com>

From: george espinoza <gespinoz2019@gmail.com>

This command currently handles its own argv so by teaching it to
use parse-options instead we can standardize the way commands
handle user input across the project.

As a consequence of using OPT_BOOL data structure on --normalize &
--refspec-pattern, --no-normalize & --no-refspec-pattern can now be
used.

NO_PARSEOPT flag was also removed to update git.c with the
conversion of the structure in this command.

This is a rough draft and I need some advice if I'm doing this
correctly since its being built but it is failing tests.

Helped by: emily shaffer emilyshaffer@google.com
Helped by: johannes schindelin johannes.schindelin@gmx.de

Signed-off-by: george espinoza <gespinoz2019@gmail.com>
---
 builtin/check-ref-format.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/builtin/check-ref-format.c b/builtin/check-ref-format.c
index 3fe0b5410a..c48fb19eda 100644
--- a/builtin/check-ref-format.c
+++ b/builtin/check-ref-format.c
@@ -61,10 +61,8 @@ int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
 	};
 
 	int i = 0;
-	int verbose;
-	int normalize;
-	int allow_onelevel;
-	int refspec_pattern;
+	int verbose = 0;
+	int normalize = 0;
 	int flags = 0;
 	const char *refname;
 
@@ -73,12 +71,13 @@ int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
 		OPT_GROUP(""),
 		OPT_CMDMODE( 0 , "branch", &check_ref_format_branch, N_("branch"), CHECK_REF_FORMAT_BRANCH),
 		OPT_BOOL( 0 , "normalize", &normalize, N_("normalize tracked files")),
-		OPT_BOOL( 0 , "allow-onelevel", &allow_onelevel, N_("allow one level")),
-		OPT_BOOL( 0 , "refspec-pattern", &refspec_pattern, N_("refspec pattern")),
+		OPT_BIT( 0 , "allow-onelevel", &flags, N_("allow one level"), REFNAME_ALLOW_ONELEVEL),
+		OPT_NEGBIT( 0, "no-allow-onelevel", &flags, N_("no allow one level"), REFNAME_ALLOW_ONELEVEL),
+		OPT_BIT( 0 , "refspec-pattern", &flags, N_("refspec pattern"), REFNAME_REFSPEC_PATTERN),
 		OPT_END(),
 	};
 
-	argc = parse_options(argc, argv, prefix, options, builtin_check_ref_format_usage, PARSE_OPT_KEEP_ARGV0);
+	argc = parse_options(argc, argv, prefix, options, builtin_check_ref_format_usage, 0);
 
 	refname = argv[i];
 	if (normalize)
-- 
gitgitgadget


  parent reply	other threads:[~2019-11-07  8:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-07  8:09 [PATCH 0/6] [Outreachy] check-ref-format: parse-options George Espinoza via GitGitGadget
2019-11-07  8:09 ` [PATCH 1/6] [Outreachy] merge-ours: include parse-option.h george espinoza via GitGitGadget
2019-11-07  9:55   ` Junio C Hamano
2019-11-07  8:09 ` [PATCH 2/6] [Outreachy] check-ref-format: parse-options george espinoza via GitGitGadget
2019-11-07 10:25   ` Junio C Hamano
2019-11-09  7:42     ` George Espinoza
2019-11-07  8:09 ` [PATCH 3/6] This file wasn't supposed to change during my git push for check-ref-format :( george espinoza via GitGitGadget
2019-11-07 10:23   ` Junio C Hamano
2019-11-07  8:09 ` george espinoza via GitGitGadget [this message]
2019-11-07  8:09 ` [PATCH 5/6] [Outreachy] check-ref-format: parse-options george espinoza via GitGitGadget
2019-11-07  8:10 ` [PATCH 6/6] " george espinoza via GitGitGadget

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0a1c8e2dea25d2e485cbf8350b08953ed33e96b7.1573114201.git.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=gespinoz2019@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.