From 557afe820baccb21206c974fbd4afa65bd7f1e03 Mon Sep 17 00:00:00 2001
From: "Shawn O. Pearce" <spearce@spearce.org>
Date: Thu, 7 Dec 2006 22:07:38 -0500
Subject: [PATCH] git-gui: Created very crude Tools menu, to support miga.

In one particular case I have a tool called 'miga' which users may need
to invoke on their repository.  This is a homegrown tool which is not
(and should be) part of git-gui, but I still want to be able to run it
from within the gui.

Right now I'm taking a shortcut and adding it to the Tools menu if
we are not on Mac OS X and the support script used to launch the tool
exists in the local filesystem.  This is nothing but a complete and
utter hack.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 git-gui | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/git-gui b/git-gui
index 1891215a646..36979afd770 100755
--- a/git-gui
+++ b/git-gui
@@ -3210,6 +3210,35 @@ if {[is_MacOSX]} {
 		-command do_options \
 		-font font_ui
 
+	# -- Tools Menu
+	#
+	if {[file exists /usr/local/miga/lib/gui-miga]} {
+	proc do_miga {} {
+		global gitdir ui_status_value
+		if {![lock_index update]} return
+		set cmd [list sh --login -c "/usr/local/miga/lib/gui-miga \"[pwd]\""]
+		set miga_fd [open "|$cmd" r]
+		fconfigure $miga_fd -blocking 0
+		fileevent $miga_fd readable [list miga_done $miga_fd]
+		set ui_status_value {Running miga...}
+	}
+	proc miga_done {fd} {
+		read $fd 512
+		if {[eof $fd]} {
+			close $fd
+			unlock_index
+			rescan [list set ui_status_value {Ready.}]
+		}
+	}
+	.mbar add cascade -label Tools -menu .mbar.tools
+	menu .mbar.tools
+	.mbar.tools add command -label "Migrate" \
+		-command do_miga \
+		-font font_ui
+	lappend disable_on_lock \
+		[list .mbar.tools entryconf [.mbar.tools index last] -state]
+	}
+
 	# -- Help Menu
 	#
 	.mbar add cascade -label Help -menu .mbar.help