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

[PATCH 1/2] web--browse: use custom commands defined at config time

From
Christian Couder <chriscool@tuxfamily.org>
Date
Mar 14, 2008, 04:56 UTC
Message-ID
<20080314055649.0bd59b47.chriscool@tuxfamily.org>

This a steal from 964473a0429f625d019c69ab55644540174acf85 by Charles Bailey.

Currently "git web--browse" is restricted to a set of commands defined in the script. You can subvert the "browser.<tool>.path" to force "git web--browse" to use a different command, but if you have a command whose invocation syntax does not match one of the current tools then you would have to write a wrapper script for it.

This patch adds a git config variable "browser.<tool>.cmd" which allows a more flexible browser choice.

If you run "git web--browse" with -t/--tool, -b/--browser or the "web.browser" config variable set to an unrecognized tool then "git web--browse" will query the "browser.<tool>.cmd" config variable. If this variable exists, then "git web--browse" will treat the specified tool as a custom command and will use a shell eval to run the command with the URLs added as extra parameters.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 git-web--browse.sh |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/git-web--browse.sh b/git-web--browse.sh
index 1023b90..384148a 100755
--- a/git-web--browse.sh
+++ b/git-web--browse.sh
@@ -23,12 +23,18 @@ USAGE='[--browser=browser|--tool=browser] [--config=conf.var] url/file ...'
 NONGIT_OK=Yes
 . git-sh-setup
 
+valid_custom_tool()
+{
+	browser_cmd="$(git config "browser.$1.cmd")"
+	test -n "$browser_cmd"
+}
+
 valid_tool() {
 	case "$1" in
 		firefox | iceweasel | konqueror | w3m | links | lynx | dillo | open)
 			;; # happy
 		*)
-			return 1
+			valid_custom_tool "$1" || return 1
 			;;
 	esac
 }
@@ -122,7 +128,7 @@ else
 
     init_browser_path "$browser"
 
-    if ! type "$browser_path" > /dev/null 2>&1; then
+    if test -z "$browser_cmd" && ! type "$browser_path" > /dev/null 2>&1; then
 	die "The browser $browser is not available as '$browser_path'."
     fi
 fi
@@ -157,4 +163,9 @@ case "$browser" in
     dillo)
 	"$browser_path" "$@" &
 	;;
+    *)
+	if test -n "$browser_cmd"; then
+	    ( eval $browser_cmd "$@" )
+	fi
+	;;
 esac
-- 
1.5.4.4.598.gcdb00b
Next: Xavier Maillard
Message 1 of 4 in “web--browse: use custom commands defined at config time”
  1. 1/2 web--browse: use custom commands defined at config timeChristian Couder, Mar 14, 2008
  2. Xavier MaillardMar 15, 2008
  3. Christian CouderMar 18, 2008
  4. Xavier MaillardMar 19, 2008

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.