From 69a06255db00cceeaadbe492c08c11c65ae82691 Mon Sep 17 00:00:00 2001 From: Martin Thielecke Date: Fri, 31 Jul 2015 23:19:45 +0000 Subject: [PATCH] [main] git commit hook to test the gofmt reliability --- githook-gofmt/hook.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 githook-gofmt/hook.go diff --git a/githook-gofmt/hook.go b/githook-gofmt/hook.go new file mode 100644 index 0000000..752460c --- /dev/null +++ b/githook-gofmt/hook.go @@ -0,0 +1,35 @@ +package main + +import ( + "fmt" + "log" + "os" + + "github.com/mthie/git-gohooks/general" +) + +func main() { + files := general.GetChangedGoFiles() + if files == nil { + os.Exit(0) + return + } + + args := []string{"-l"} + args = append(args, files...) + + result := general.RunCommand("gofmt", args...) + if result == "" { + os.Exit(0) + return + } + fmt.Fprint(os.Stderr, "Go files must be formatted with gofmt. Please run:\n\n") + fmt.Fprint(os.Stderr, " gofmt -w") + for _, file := range files { + fmt.Fprint(os.Stderr, " \\\n") + fmt.Fprintf(os.Stderr, " %s", file) + } + fmt.Fprint(os.Stderr, "\n") + os.Exit(1) + log.Printf("Result: %+v", result) +}