 a8816e7bab
			
		
	
	a8816e7bab
	
	
	
		
			
			* git://repo.or.cz/git-gui: git-gui: Fixes for Mac OS X TkAqua git-gui: Update Russian translation git-gui: run post-checkout hook after clone git-gui: Ensure consistent usage of mergetool.keepBackup git-gui: fix use of undeclared variable diff_empty_count git-gui (Win): make starting via "Git GUI Here" on .git/ possible git-gui (Win): make "Explore Working Copy" more robust git-gui: run post-checkout hook on checkout git-gui: When calling post-commit hook wrong variable was cleared. git-gui: use `git --html-path` to get the location of installed HTML docs git-gui: fix deleting from the context menu with empty selection git-gui: minor spelling fix and string factorisation. git-gui: various French translation fixes git-gui: Fix merge conflict display error when filename contains spaces git-gui: don't hide the Browse button when resizing the repo chooser Append ampersand to "Target" of lnk files created by do_cygwin_shortcut git-gui: Support more git version notations. git-gui: Avoid an infinite rescan loop in handle_empty_diff. git-gui: Fix post-commit status with subject in non-locale encoding
		
			
				
	
	
		
			140 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
| # git-gui desktop icon creators
 | |
| # Copyright (C) 2006, 2007 Shawn Pearce
 | |
| 
 | |
| proc do_windows_shortcut {} {
 | |
| 	set fn [tk_getSaveFile \
 | |
| 		-parent . \
 | |
| 		-title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \
 | |
| 		-initialfile "Git [reponame].lnk"]
 | |
| 	if {$fn != {}} {
 | |
| 		if {[file extension $fn] ne {.lnk}} {
 | |
| 			set fn ${fn}.lnk
 | |
| 		}
 | |
| 		if {[catch {
 | |
| 				win32_create_lnk $fn [list \
 | |
| 					[info nameofexecutable] \
 | |
| 					[file normalize $::argv0] \
 | |
| 					] \
 | |
| 					[file dirname [file normalize [gitdir]]]
 | |
| 			} err]} {
 | |
| 			error_popup [strcat [mc "Cannot write shortcut:"] "\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 [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \
 | |
| 		-initialdir $desktop \
 | |
| 		-initialfile "Git [reponame].lnk"]
 | |
| 	if {$fn != {}} {
 | |
| 		if {[file extension $fn] ne {.lnk}} {
 | |
| 			set fn ${fn}.lnk
 | |
| 		}
 | |
| 		if {[catch {
 | |
| 				set sh [exec cygpath \
 | |
| 					--windows \
 | |
| 					--absolute \
 | |
| 					/bin/sh.exe]
 | |
| 				set me [exec cygpath \
 | |
| 					--unix \
 | |
| 					--absolute \
 | |
| 					$argv0]
 | |
| 				win32_create_lnk $fn [list \
 | |
| 					$sh -c \
 | |
| 					"CHERE_INVOKING=1 source /etc/profile;[sq $me] &" \
 | |
| 					] \
 | |
| 					[file dirname [file normalize [gitdir]]]
 | |
| 			} err]} {
 | |
| 			error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"]
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| proc do_macosx_app {} {
 | |
| 	global argv0 env
 | |
| 
 | |
| 	set fn [tk_getSaveFile \
 | |
| 		-parent . \
 | |
| 		-title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \
 | |
| 		-initialdir [file join $env(HOME) Desktop] \
 | |
| 		-initialfile "Git [reponame].app"]
 | |
| 	if {$fn != {}} {
 | |
| 		if {[file extension $fn] ne {.app}} {
 | |
| 			set fn ${fn}.app
 | |
| 		}
 | |
| 		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]
 | |
| 				puts $fd "#!/bin/sh"
 | |
| 				foreach name [lsort [array names env]] {
 | |
| 					set value $env($name)
 | |
| 					switch -- $name {
 | |
| 					GIT_DIR { set value [file normalize [gitdir]] }
 | |
| 					}
 | |
| 
 | |
| 					switch -glob -- $name {
 | |
| 					SSH_* -
 | |
| 					GIT_* {
 | |
| 						puts $fd "if test \"z\$$name\" = z; then"
 | |
| 						puts $fd "  export $name=[sq $value]"
 | |
| 						puts $fd "fi &&"
 | |
| 					}
 | |
| 					}
 | |
| 				}
 | |
| 				puts $fd "export PATH=[sq [file dirname $::_git]]:\$PATH &&"
 | |
| 				puts $fd "cd [sq [file normalize [pwd]]] &&"
 | |
| 				puts $fd "exec \\"
 | |
| 				puts $fd " [sq [info nameofexecutable]] \\"
 | |
| 				puts $fd " [sq [file normalize $argv0]]"
 | |
| 				close $fd
 | |
| 
 | |
| 				file attributes $exe -permissions u+x,g+x,o+x
 | |
| 			} err]} {
 | |
| 			error_popup [strcat [mc "Cannot write icon:"] "\n\n$err"]
 | |
| 		}
 | |
| 	}
 | |
| }
 |