summaryrefslogtreecommitdiff
path: root/cmd/planr/main.go
diff options
context:
space:
mode:
authorflu0r1ne <flu0r1ne@flu0r1ne.net>2021-09-05 20:37:19 -0500
committerflu0r1ne <flu0r1ne@flu0r1ne.net>2021-09-05 20:37:19 -0500
commitf5b60238e05b124eb40f805eb4a0bbfc0b043da5 (patch)
treef461bff108f5ddafc4078aa7394d7bf2a6309cc9 /cmd/planr/main.go
parent8f22bd4f5b4eb6996c524bcb6948d36cef0ac822 (diff)
parentfd66fb134967067ed7e1c3182325f646b73c730b (diff)
downloaddeb-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.go77
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: