summaryrefslogtreecommitdiff
path: root/cmd/planr
diff options
context:
space:
mode:
authorFlu0r1ne <flur01ne@flu0r1ne.net>2021-08-11 23:00:24 -0500
committerFlu0r1ne <flur01ne@flu0r1ne.net>2021-08-11 23:00:24 -0500
commit4f6854fa9cbbafe78ea3fe0373f63db93297a39b (patch)
treeab5ad31ed642fd544df45a396c6aff821be3179c /cmd/planr
parentfe8d44aa4472ff4a5187820cc56c141d9ce77a58 (diff)
downloaddeb-planr-upstream/0.0.1.tar.xz
deb-planr-upstream/0.0.1.zip
Prepare for dh-golangv0.0.1upstream/0.0.1
Diffstat (limited to 'cmd/planr')
-rw-r--r--cmd/planr/main.go50
-rw-r--r--cmd/planr/sub/build.go19
-rw-r--r--cmd/planr/sub/evaluate.go52
3 files changed, 121 insertions, 0 deletions
diff --git a/cmd/planr/main.go b/cmd/planr/main.go
new file mode 100644
index 0000000..c65edb1
--- /dev/null
+++ b/cmd/planr/main.go
@@ -0,0 +1,50 @@
+package main
+
+import (
+ "os"
+ "io"
+ "fmt"
+ "golang.flu0r1ne.net/planr/cmd/planr/sub"
+)
+
+const (
+ VERSION = "0.0.1"
+)
+
+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 ")
+}
+
+func dieUsage() {
+ printUsage(os.Stderr)
+ os.Exit(1)
+}
+
+func main() {
+
+ if len(os.Args) < 2 {
+ dieUsage()
+ }
+
+ subcommand := os.Args[1]
+ subargs := os.Args[2:]
+
+ switch subcommand {
+ case "version":
+ fmt.Printf("%s\n", VERSION)
+ case "build":
+ sub.Build(subargs)
+ case "evaluate":
+ sub.Evaluate(subargs)
+ case "help", "-h", "-help", "--help":
+ printUsage(os.Stdout)
+ default:
+ fmt.Fprintf(os.Stderr, "unrecognized command %s\n", subcommand)
+ dieUsage()
+ }
+
+}
diff --git a/cmd/planr/sub/build.go b/cmd/planr/sub/build.go
new file mode 100644
index 0000000..58c3a38
--- /dev/null
+++ b/cmd/planr/sub/build.go
@@ -0,0 +1,19 @@
+package sub
+
+import (
+ "golang.flu0r1ne.net/planr"
+ "golang.flu0r1ne.net/planr/adapters/gtest"
+)
+
+func Runner() planr.Runner {
+ r := planr.Runner {}
+ r.RegisterAdapter(&gtest.GtestAdapter{})
+ return r
+}
+
+func Build(params []string) {
+
+ rd := planr.RubricDir()
+
+ Runner().Build(rd)
+}
diff --git a/cmd/planr/sub/evaluate.go b/cmd/planr/sub/evaluate.go
new file mode 100644
index 0000000..1174b3f
--- /dev/null
+++ b/cmd/planr/sub/evaluate.go
@@ -0,0 +1,52 @@
+package sub
+
+import (
+ "fmt"
+ "golang.flu0r1ne.net/planr"
+)
+
+func Evaluate(params []string) {
+ rd := planr.RubricDir()
+
+ tcs := Runner().Evaluate(rd)
+
+ fmt.Printf("\n\nREPORT:\n=======\n\n")
+
+ earned := 0.0
+ total := 0.0
+ for _, tc := range tcs {
+ cfg := tc.Config
+
+ name := tc.Cname
+ if cfg.Title != nil {
+ name = *cfg.Title
+ }
+
+ var points float64 = 0.0
+ if cfg.Points != nil {
+ points = float64(*cfg.Points)
+ }
+
+ status := "SILENT"
+ if tc.Result != nil {
+ if tc.Result.Pass {
+ status = "PASS"
+ earned += points
+ } else {
+ status = "FAIL"
+ }
+ }
+
+ total += points
+
+ fmt.Printf("[%s] %s (%f)\n", status, name, points)
+
+ if cfg.Description != nil {
+ fmt.Printf("> %s\n", *cfg.Description)
+ }
+
+ fmt.Println()
+ }
+
+ fmt.Printf("Score: %f (%f%%)\n", earned, (earned / total) * 100)
+}