diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 33 | 
1 files changed, 33 insertions, 0 deletions
@@ -8,9 +8,15 @@ import (  	"io"  	"log"  	"os" +	"strings"  )  func main() { +	log.SetFlags(0) + +	log.Println("Starting craft") +	log.Printf("Git hook type: %s\n", getHookType()) +  	cwd, err := os.Getwd()  	if err != nil {  		log.Fatal(err) @@ -22,6 +28,33 @@ func main() {  	}  } +func getHookType() string { +	args := len(os.Args) +	if args != 1 { +		log.Fatalf("Expected zero arguments but %d were given", args-1) +	} +	prefix := `hooks/` +	path := os.Args[0] +	hookType := strings.TrimPrefix(path, prefix) +	if path == hookType { +		log.Fatalf("Hook path '%s' has no '%s' prefix", path, prefix) +	} +	validateHookType(hookType) +	return hookType +} + +func validateHookType(hookType string) { +	validTypes := [...]string{ +		`post-receive`, +	} +	for _, currentType := range validTypes { +		if hookType == currentType { +			return +		} +	} +	log.Fatalf("Not supported Git hook type '%s'\n", hookType) +} +  type update struct {  	old, updated, ref string  }  | 
