git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/9 v6] difftool: exit(0) when usage is printed

From
Tim Henigan <tim.henigan@gmail.com>
Date
Mar 22, 2012, 19:52 UTC
Message-ID
<1332445944-10944-4-git-send-email-tim.henigan@gmail.com>
In-Reply-To
<1332445944-10944-1-git-send-email-tim.henigan@gmail.com>

Prior to this commit, the script exited with an error whenever the usage string was printed, regardless of the reason it was done. In cases where usage was printed due to a user request (e.g. '-h' option), the script should exit without error (exit 0).

This commit adds an argument to the usage function that allows the exit code to be specified when the function is called.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
---
 git-difftool.perl |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/git-difftool.perl b/git-difftool.perl
index bf51b79..33ae30a 100755
--- a/git-difftool.perl
+++ b/git-difftool.perl
@@ -20,6 +20,7 @@ use Git;
 
 sub usage
 {
+	my $exitcode = shift;
 	print << 'USAGE';
 usage: git difftool [-t|--tool=<tool>]
                     [-x|--extcmd=<cmd>]
@@ -27,7 +28,7 @@ usage: git difftool [-t|--tool=<tool>]
                     [--prompt] [-y|--no-prompt]
                     ['git diff' options]
 USAGE
-	exit 1;
+	exit($exitcode);
 }
 
 sub setup_environment
@@ -58,14 +59,14 @@ GetOptions('g|gui!' => \$gui,
 	'x|extcmd:s' => \$extcmd);
 
 if (defined($help)) {
-	usage();
+	usage(0);
 } 
 if (defined($difftool_cmd)) {
 	if (length($difftool_cmd) > 0) {
 		$ENV{GIT_DIFF_TOOL} = $difftool_cmd;
 	} else {
 		print "No <tool> given for --tool=<tool>\n";
-		usage();
+		usage(1);
 	}
 }
 if (defined($extcmd)) {
@@ -73,7 +74,7 @@ if (defined($extcmd)) {
 		$ENV{GIT_DIFFTOOL_EXTCMD} = $extcmd;
 	} else {
 		print "No <cmd> given for --extcmd=<cmd>\n";
-		usage();
+		usage(1);
 	}
 }
 if ($gui) {
-- 
1.7.10.rc1.36.g15e879
Previous: Tim HeniganNext: Tim Henigan
Message 4 of 10 in “difftool: teach command to perform directory diffs”
  1. 0/9 difftool: teach command to perform directory diffsTim Henigan, Mar 22, 2012
  2. 1/9 difftool: parse options using Getopt::LongTim Henigan, Mar 22, 2012
  3. 2/9 difftool: add '--no-gui' optionTim Henigan, Mar 22, 2012
  4. 3/9 difftool: exit(0) when usage is printedTim Henigan, Mar 22, 2012
  5. 4/9 difftool: remove explicit change of PATHTim Henigan, Mar 22, 2012
  6. 5/9 difftool: stop appending '.exe' to gitTim Henigan, Mar 22, 2012
  7. 6/9 difftool: eliminate setup_environment functionTim Henigan, Mar 22, 2012
  8. 7/9 difftool: replace system call with Git::command_noisyTim Henigan, Mar 22, 2012
  9. 8/9 difftool: teach difftool to handle directory diffsTim Henigan, Mar 22, 2012
  10. 9/9 difftool: print list of valid tools with '--tool-help'Tim Henigan, Mar 22, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.