summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 2ebba52)
raw | patch | inline | side by side (parent: 2ebba52)
author | Shawn O. Pearce <spearce@spearce.org> | |
Fri, 9 Feb 2007 00:41:32 +0000 (19:41 -0500) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Fri, 9 Feb 2007 00:41:32 +0000 (19:41 -0500) |
If we are invoked as `git-foo`, then we should run the `foo` subcommand,
as the user has made some sort of link from `git-foo` to our actual
program code. So we should honor their request.
If we are invoked as `git-gui foo`, the user has not made a link (or
did, but is not using it right now) so we should execute the `foo`
subcommand.
We now can start the single commit UI mode via `git-citool` and also
through `git gui citool`.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
as the user has made some sort of link from `git-foo` to our actual
program code. So we should honor their request.
If we are invoked as `git-gui foo`, the user has not made a link (or
did, but is not using it right now) so we should execute the `foo`
subcommand.
We now can start the single commit UI mode via `git-citool` and also
through `git gui citool`.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh | patch | blob | history |
diff --git a/git-gui.sh b/git-gui.sh
index 66d85dc6d06cffae2c5e13068886ce50042cbef1..ff5f5a763db038b37056fcb70ef6c963ab150fd2 100755 (executable)
--- a/git-gui.sh
+++ b/git-gui.sh
##
## feature option selection
+if {[regexp {^git-(.+)$} [appname] _junk subcommand]} {
+ unset _junk
+} else {
+ set subcommand gui
+}
+if {$subcommand eq {gui.sh}} {
+ set subcommand gui
+}
+if {$subcommand eq {gui} && [llength $argv] > 0} {
+ set subcommand [lindex $argv 0]
+ set argv [lrange $argv 1 end]
+}
+
enable_option multicommit
enable_option branch
enable_option transport
-if {[appname] eq {git-citool}} {
- enable_option singlecommit
-
+switch -- $subcommand {
+blame {
disable_option multicommit
disable_option branch
disable_option transport
}
+citool {
+ enable_option singlecommit
-switch -- [lindex $argv 0] {
-blame {
disable_option multicommit
disable_option branch
disable_option transport
# -- Not a normal commit type invocation? Do that instead!
#
-switch -- [lindex $argv 0] {
+switch -- $subcommand {
blame {
- if {[llength $argv] == 3} {
- set current_branch [lindex $argv 1]
- show_blame $current_branch [lindex $argv 2]
- return
- } else {
+ if {[llength $argv] != 2} {
puts stderr "usage: $argv0 blame commit path"
exit 1
}
+ set current_branch [lindex $argv 0]
+ show_blame $current_branch [lindex $argv 1]
+ return
+}
+citool -
+gui {
+ if {[llength $argv] != 0} {
+ puts -nonewline stderr "usage: $argv0"
+ if {$subcommand ne {gui} && [appname] ne "git-$subcommand"} {
+ puts -nonewline stderr " $subcommand"
+ }
+ puts stderr {}
+ exit 1
+ }
+ # fall through to setup UI for commits
}
-{} {}
default {
- puts stderr "usage: $argv0 \[{blame}\]"
+ puts stderr "usage: $argv0 \[{blame|citool}\]"
exit 1
}
}