5f5dbd719d
* 'master' of git://repo.or.cz/git-gui: git-gui: Use vi-like keys in merge dialog git-gui: Include commit id/subject in merge choices git-gui: Show all possible branches for merge git-gui: Move merge support into a namespace git-gui: Allow vi keys to scroll the diff/blame regions git-gui: Move console procs into their own namespace git-gui: Refactor into multiple files to save my sanity git-gui: Track our own embedded values and rebuild when they change git-gui: Refactor to use our git proc more often git-gui: Use option database defaults to set the font git-gui: Cleanup common font handling for font_ui git-gui: Correct line wrapping for too many branch message git-gui: Warn users before making an octopus merge git-gui: Include the subject in the status bar after commit Also perform an evil merge change to update Git's main Makefile to pass the proper options down into git-gui now that it depends on reasonable values for 'sharedir' and 'TCL_PATH'. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
142 lines
3.5 KiB
Tcl
142 lines
3.5 KiB
Tcl
# git-gui desktop icon creators
|
|
# Copyright (C) 2006, 2007 Shawn Pearce
|
|
|
|
proc do_windows_shortcut {} {
|
|
global argv0
|
|
|
|
set fn [tk_getSaveFile \
|
|
-parent . \
|
|
-title "[appname] ([reponame]): Create Desktop Icon" \
|
|
-initialfile "Git [reponame].bat"]
|
|
if {$fn != {}} {
|
|
if {[catch {
|
|
set fd [open $fn w]
|
|
puts $fd "@ECHO Entering [reponame]"
|
|
puts $fd "@ECHO Starting git-gui... please wait..."
|
|
puts $fd "@SET PATH=[file normalize [gitexec]];%PATH%"
|
|
puts $fd "@SET GIT_DIR=[file normalize [gitdir]]"
|
|
puts -nonewline $fd "@\"[info nameofexecutable]\""
|
|
puts $fd " \"[file normalize $argv0]\""
|
|
close $fd
|
|
} err]} {
|
|
error_popup "Cannot write script:\n\n$err"
|
|
}
|
|
}
|
|
}
|
|
|
|
proc do_cygwin_shortcut {} {
|
|
global argv0
|
|
|
|
if {[catch {
|
|
set desktop [exec cygpath \
|
|
--windows \
|
|
--absolute \
|
|
--long-name \
|
|
--desktop]
|
|
}]} {
|
|
set desktop .
|
|
}
|
|
set fn [tk_getSaveFile \
|
|
-parent . \
|
|
-title "[appname] ([reponame]): Create Desktop Icon" \
|
|
-initialdir $desktop \
|
|
-initialfile "Git [reponame].bat"]
|
|
if {$fn != {}} {
|
|
if {[catch {
|
|
set fd [open $fn w]
|
|
set sh [exec cygpath \
|
|
--windows \
|
|
--absolute \
|
|
/bin/sh]
|
|
set me [exec cygpath \
|
|
--unix \
|
|
--absolute \
|
|
$argv0]
|
|
set gd [exec cygpath \
|
|
--unix \
|
|
--absolute \
|
|
[gitdir]]
|
|
set gw [exec cygpath \
|
|
--windows \
|
|
--absolute \
|
|
[file dirname [gitdir]]]
|
|
regsub -all ' $me "'\\''" me
|
|
regsub -all ' $gd "'\\''" gd
|
|
puts $fd "@ECHO Entering $gw"
|
|
puts $fd "@ECHO Starting git-gui... please wait..."
|
|
puts -nonewline $fd "@\"$sh\" --login -c \""
|
|
puts -nonewline $fd "GIT_DIR='$gd'"
|
|
puts -nonewline $fd " '$me'"
|
|
puts $fd "&\""
|
|
close $fd
|
|
} err]} {
|
|
error_popup "Cannot write script:\n\n$err"
|
|
}
|
|
}
|
|
}
|
|
|
|
proc do_macosx_app {} {
|
|
global argv0 env
|
|
|
|
set fn [tk_getSaveFile \
|
|
-parent . \
|
|
-title "[appname] ([reponame]): Create Desktop Icon" \
|
|
-initialdir [file join $env(HOME) Desktop] \
|
|
-initialfile "Git [reponame].app"]
|
|
if {$fn != {}} {
|
|
if {[catch {
|
|
set Contents [file join $fn Contents]
|
|
set MacOS [file join $Contents MacOS]
|
|
set exe [file join $MacOS git-gui]
|
|
|
|
file mkdir $MacOS
|
|
|
|
set fd [open [file join $Contents Info.plist] w]
|
|
puts $fd {<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>English</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>git-gui</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>org.spearce.git-gui</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleSignature</key>
|
|
<string>????</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>1.0</string>
|
|
<key>NSPrincipalClass</key>
|
|
<string>NSApplication</string>
|
|
</dict>
|
|
</plist>}
|
|
close $fd
|
|
|
|
set fd [open $exe w]
|
|
set gd [file normalize [gitdir]]
|
|
set ep [file normalize [gitexec]]
|
|
regsub -all ' $gd "'\\''" gd
|
|
regsub -all ' $ep "'\\''" ep
|
|
puts $fd "#!/bin/sh"
|
|
foreach name [array names env] {
|
|
if {[string match GIT_* $name]} {
|
|
regsub -all ' $env($name) "'\\''" v
|
|
puts $fd "export $name='$v'"
|
|
}
|
|
}
|
|
puts $fd "export PATH='$ep':\$PATH"
|
|
puts $fd "export GIT_DIR='$gd'"
|
|
puts $fd "exec [file normalize $argv0]"
|
|
close $fd
|
|
|
|
file attributes $exe -permissions u+x,g+x,o+x
|
|
} err]} {
|
|
error_popup "Cannot write icon:\n\n$err"
|
|
}
|
|
}
|
|
}
|