diff options
author | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2021-09-05 20:37:19 -0500 |
---|---|---|
committer | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2021-09-05 20:37:19 -0500 |
commit | f5b60238e05b124eb40f805eb4a0bbfc0b043da5 (patch) | |
tree | f461bff108f5ddafc4078aa7394d7bf2a6309cc9 /cmd/planr/main.go | |
parent | 8f22bd4f5b4eb6996c524bcb6948d36cef0ac822 (diff) | |
parent | fd66fb134967067ed7e1c3182325f646b73c730b (diff) | |
download | deb-planr-f5b60238e05b124eb40f805eb4a0bbfc0b043da5.tar.xz deb-planr-f5b60238e05b124eb40f805eb4a0bbfc0b043da5.zip |
Merge branch 'upstream' into ppa
Merge v0.1.0
Diffstat (limited to 'cmd/planr/main.go')
-rw-r--r-- | cmd/planr/main.go | 77 |
1 files changed, 65 insertions, 12 deletions
diff --git a/cmd/planr/main.go b/cmd/planr/main.go index e2a85ed..2243203 100644 --- a/cmd/planr/main.go +++ b/cmd/planr/main.go @@ -1,24 +1,28 @@ package main -import ( +import ( "flag" "fmt" "io" "log" "os" + "runtime/pprof" + "golang.flu0r1ne.net/planr" + "golang.flu0r1ne.net/planr/adapters/gtest" + "golang.flu0r1ne.net/planr/adapters/bash" "golang.flu0r1ne.net/planr/cmd/planr/sub" ) -const ( - VERSION = "0.0.3" -) - func printUsage(w io.Writer) { fmt.Fprintf (w, "usage: %s command args ... \n", os.Args[0]) fmt.Fprintln(w, " help ") fmt.Fprintln(w, " version ") fmt.Fprintln(w, " build ") fmt.Fprintln(w, " evaluate ") + fmt.Fprintln(w, " evaluate <test0> <test1> ... ") + fmt.Fprintln(w, " evaluate -json ") + fmt.Fprintln(w, " clean ") + fmt.Fprintln(w, " config <key> ") } func dieUsage() { @@ -26,25 +30,74 @@ func dieUsage() { os.Exit(1) } +var src = flag.String("srcdir", "", "source directory") +var config = flag.String("configdir", "", "config directory") +var build = flag.String("builddir", "", "build directory") +var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") + +func getConfiguredRunner() planr.Runner { + r := planr.ConfigureRunner() + r = planr.RegisterAdapter(r, gtest.NewAdapter()) + r = planr.RegisterAdapter(r, bash.NewAdapter()) + + if wd, err := os.Getwd(); err == nil { + r = planr.SetConfigDirFromTree(r, wd) + } + + if *src != "" { + r = planr.SetSrcDir(r, *src) + } + + if *config != "" { + r = planr.SetConfigDir(r, *config) + } + + if *build != "" { + r = planr.SetBuildDir(r, *build) + } + + return r.New() +} + func main() { + flag.Parse() + + if *cpuprofile != "" { + f, err := os.Create(*cpuprofile) + + if err != nil { + log.Fatal(err) + } + + pprof.StartCPUProfile(f) + defer pprof.StopCPUProfile() + } log.SetFlags(log.Llongfile | log.Lmsgprefix) log.SetPrefix("planr: ") - if len(os.Args) < 2 { + if flag.NArg() < 1 { dieUsage() } - subcommand := os.Args[1] - subargs := os.Args[2:] + runner := getConfiguredRunner() + + cfg := planr.DecodeConfig(runner.ConfigDir()) + + subcommand := flag.Arg(0) + subargs := flag.Args()[1:] switch subcommand { case "version": - fmt.Printf("%s\n", VERSION) + fmt.Printf("%s\n", planr.VERSION) case "build": - sub.Build(subargs) - case "evaluate","eval": - sub.Evaluate(subargs) + sub.Build(runner, subargs, cfg) + case "evaluate", "eval": + sub.Evaluate(runner, subargs, cfg) + case "clean": + sub.Clean(runner, subargs) + case "config": + sub.Config(runner, subargs) case "help", "-h", "-help", "--help": printUsage(os.Stdout) default: |