github.com/PaulioRandall/go-cookies@v0.1.1/godo.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "path/filepath" 7 "strings" 8 9 "github.com/PaulioRandall/go-cookies/go/quick" 10 ) 11 12 var ( 13 ROOT = quick.AbsPath(".") 14 BUILD = filepath.Join(ROOT, "build") 15 PROJ_PATH = "github.com/PaulioRandall/go-cookies" 16 MAIN_PKG = "cmd" 17 USAGE = `Usage: 18 help Show usage 19 clean Remove build files 20 build Build -> format -> vet 21 test Build -> format -> test -> vet 22 run Build -> format -> test -> vet -> run` 23 ) 24 25 var ( 26 BUILD_ARGS = []string{ 27 "-o", BUILD, 28 "", // "-gcflags -m -ldflags -s -w" 29 PROJ_PATH + "/" + MAIN_PKG, 30 } 31 FMT_ARGS = []string{"./..."} 32 TEST_ARGS = []string{"-timeout", "2s", "./..."} 33 VET_ARGS = []string{"./..."} 34 ) 35 36 func main() { 37 38 code := 0 39 args := os.Args[1:] 40 41 if len(args) == 0 { 42 quick.UsageErr(USAGE, "Missing command argument") 43 } 44 45 switch cmd := args[0]; strings.ToLower(cmd) { 46 case "help": 47 fmt.Println(USAGE) 48 49 case "clean": 50 quick.Clean(BUILD) 51 52 case "build": 53 quick.Clean(BUILD) 54 quick.Setup(BUILD, os.ModePerm) 55 quick.Build(ROOT, BUILD_ARGS...) 56 quick.Fmt(ROOT, FMT_ARGS...) 57 quick.Vet(ROOT, VET_ARGS...) 58 59 case "test": 60 quick.Clean(BUILD) 61 quick.Setup(BUILD, os.ModePerm) 62 quick.Build(ROOT, BUILD_ARGS...) 63 quick.Fmt(ROOT, FMT_ARGS...) 64 quick.Test(ROOT, TEST_ARGS...) 65 quick.Vet(ROOT, VET_ARGS...) 66 67 case "run": 68 quick.Clean(BUILD) 69 quick.Setup(BUILD, os.ModePerm) 70 quick.Build(ROOT, BUILD_ARGS...) 71 quick.Fmt(ROOT, FMT_ARGS...) 72 quick.Test(ROOT, TEST_ARGS...) 73 quick.Vet(ROOT, VET_ARGS...) 74 code = quick.Run(BUILD, MAIN_PKG) 75 76 default: 77 quick.UsageErr(USAGE, "Unknown command argument %q", cmd) 78 } 79 80 fmt.Printf("\nExit: %d\n", code) 81 os.Exit(code) 82 }