review/git-review: support help when not in git repository

Also use os.Args[0] for binary name.

Change-Id: Ib1b8fc07784c489101e117690a3416baab73f132
Reviewed-on: https://go-review.googlesource.com/1181
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/git-review/change.go b/git-review/change.go
index ee5f8cc..e8f5300 100644
--- a/git-review/change.go
+++ b/git-review/change.go
@@ -31,7 +31,7 @@
 			// Permit "review change master".
 			return
 		}
-		dief("can't commit to master branch (use 'review change branchname').")
+		dief("can't commit to master branch (use '%s change branchname').", os.Args[0])
 	}
 	if branch.ChangeID == "" {
 		// No change commit on this branch, create one.
diff --git a/git-review/review.go b/git-review/review.go
index 4e7f347..e2ddc4f 100644
--- a/git-review/review.go
+++ b/git-review/review.go
@@ -81,17 +81,20 @@
 `
 
 func main() {
-	installHook()
-
 	if len(os.Args) < 2 {
 		flags.Usage()
 		os.Exit(2)
 	}
 	command, args := os.Args[1], os.Args[2:]
 
-	switch command {
-	case "help":
+	if command == "help" {
 		fmt.Fprintf(os.Stdout, help, os.Args[0])
+		return
+	}
+
+	installHook()
+
+	switch command {
 	case "change", "c":
 		change(args)
 	case "pending", "p":
@@ -185,5 +188,5 @@
 }
 
 func printf(format string, args ...interface{}) {
-	fmt.Fprintf(os.Stderr, "review: "+format+"\n", args...)
+	fmt.Fprintf(os.Stderr, os.Args[0]+": "+format+"\n", args...)
 }