about summary refs log tree commit diff
path: root/third_party/git/git-gui/macosx/AppMain.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/git-gui/macosx/AppMain.tcl')
-rw-r--r--third_party/git/git-gui/macosx/AppMain.tcl29
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/git/git-gui/macosx/AppMain.tcl b/third_party/git/git-gui/macosx/AppMain.tcl
new file mode 100644
index 000000000000..b6c6dc35003b
--- /dev/null
+++ b/third_party/git/git-gui/macosx/AppMain.tcl
@@ -0,0 +1,29 @@
+set gitexecdir {@@gitexecdir@@}
+if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {
+	set gitguilib $::env(GIT_GUI_LIB_DIR)
+} else {
+	set gitguilib {@@GITGUI_LIBDIR@@}
+}
+
+set env(PATH) "$gitexecdir:$env(PATH)"
+
+if {[string first -psn [lindex $argv 0]] == 0} {
+	lset argv 0 [file join $gitexecdir git-gui]
+}
+
+if {[file tail [lindex $argv 0]] eq {gitk}} {
+	set argv0 [lindex $argv 0]
+	set AppMain_source $argv0
+} else {
+	set argv0 [file join $gitexecdir [file tail [lindex $argv 0]]]
+	set AppMain_source [file join $gitguilib git-gui.tcl]
+	if {[info exists env(PWD)]} {
+		cd $env(PWD)
+	} elseif {[pwd] eq {/}} {
+		cd $env(HOME)
+	}
+}
+
+unset gitexecdir gitguilib
+set argv [lrange $argv 1 end]
+source $AppMain_source