Pre-calculate the absolute path of git (#6575)

* Pre-caculate the absolute path of git

* Do not repeat string literals which has been defined somewhere

Also make it flexible to accept customized/user-defined value.
This commit is contained in:
Mura Li 2019-04-17 19:11:37 +08:00 committed by Lauris BH
parent 7a4c29c739
commit 2a9806bfc6
2 changed files with 12 additions and 1 deletions

View File

@ -41,7 +41,7 @@ func NewCommand(args ...string) *Command {
cargs := make([]string, len(GlobalCommandArgs)) cargs := make([]string, len(GlobalCommandArgs))
copy(cargs, GlobalCommandArgs) copy(cargs, GlobalCommandArgs)
return &Command{ return &Command{
name: "git", name: GitExecutable,
args: append(cargs, args...), args: append(cargs, args...),
} }
} }

View File

@ -7,6 +7,7 @@ package git
import ( import (
"fmt" "fmt"
"os/exec"
"strings" "strings"
"time" "time"
@ -26,6 +27,10 @@ var (
Prefix = "[git-module] " Prefix = "[git-module] "
// GitVersionRequired is the minimum Git version required // GitVersionRequired is the minimum Git version required
GitVersionRequired = "1.7.2" GitVersionRequired = "1.7.2"
// GitExecutable is the command name of git
// Could be updated to an absolute path while initialization
GitExecutable = "git"
) )
func log(format string, args ...interface{}) { func log(format string, args ...interface{}) {
@ -71,6 +76,12 @@ func BinVersion() (string, error) {
} }
func init() { func init() {
absPath, err := exec.LookPath(GitExecutable)
if err != nil {
panic(fmt.Sprintf("Git not found: %v", err))
}
GitExecutable = absPath
gitVersion, err := BinVersion() gitVersion, err := BinVersion()
if err != nil { if err != nil {
panic(fmt.Sprintf("Git version missing: %v", err)) panic(fmt.Sprintf("Git version missing: %v", err))