diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2018-07-21 15:51:18 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2018-07-21 15:51:18 +1000 |
commit | dea751280e4bebab0cfcbe978e5303e17e870221 (patch) | |
tree | d58a53b9190983b1047a85deb21b820ca77f5f39 /main.go | |
parent | 211715fa7709b3fab7fcd71905ea8df177ab1a54 (diff) |
better handling of branches and untracked files
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 78 |
1 files changed, 44 insertions, 34 deletions
@@ -1,59 +1,69 @@ package main import ( - "flag" - "fmt" - "log" - "os" - "os/user" - "time" - - "github.com/fatih/color" + "flag" + "fmt" + "log" + "os" + "os/user" + "time" + + "github.com/fatih/color" ) var ( - startTime time.Time - debugging bool + startTime time.Time + debugging bool ) func homeDirectory() string { - usr, err := user.Current() - if err != nil { - log.Fatal(err) - } - return usr.HomeDir + usr, err := user.Current() + if err != nil { + log.Fatal(err) + } + return usr.HomeDir } func devLog(objects ...interface{}) { - localLog(color.FgWhite, homeDirectory()+"/go/src/github.com/jesseduffield/lazygit/development.log", objects...) + localLog(color.FgWhite, homeDirectory()+"/go/src/github.com/jesseduffield/lazygit/development.log", objects...) } func colorLog(colour color.Attribute, objects ...interface{}) { - localLog(colour, homeDirectory()+"/go/src/github.com/jesseduffield/lazygit/development.log", objects...) + localLog(colour, homeDirectory()+"/go/src/github.com/jesseduffield/lazygit/development.log", objects...) } func commandLog(objects ...interface{}) { - localLog(color.FgWhite, homeDirectory()+"/go/src/github.com/jesseduffield/lazygit/commands.log", objects...) + localLog(color.FgWhite, homeDirectory()+"/go/src/github.com/jesseduffield/lazygit/commands.log", objects...) } func localLog(colour color.Attribute, path string, objects ...interface{}) { - if !debugging { - return - } - f, _ := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, 0644) - defer f.Close() - for _, object := range objects { - colorFunction := color.New(colour).SprintFunc() - f.WriteString(colorFunction(fmt.Sprint(object)) + "\n") - } + if !debugging { + return + } + f, _ := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, 0644) + defer f.Close() + for _, object := range objects { + colorFunction := color.New(colour).SprintFunc() + f.WriteString(colorFunction(fmt.Sprint(object)) + "\n") + } +} + +func navigateToRepoRootDirectory() { + _, err := os.Stat(".git") + for os.IsNotExist(err) { + devLog("going up a directory to find the root") + os.Chdir("..") + _, err = os.Stat(".git") + } } func main() { - debuggingPointer := flag.Bool("debug", false, "a boolean") - flag.Parse() - debugging = *debuggingPointer - devLog("\n\n\n\n\n\n\n\n\n\n") - startTime = time.Now() - verifyInGitRepo() - run() + debuggingPointer := flag.Bool("debug", false, "a boolean") + flag.Parse() + debugging = *debuggingPointer + devLog("\n\n\n\n\n\n\n\n\n\n") + startTime = time.Now() + verifyInGitRepo() + navigateToRepoRootDirectory() + run() } |