From a758254057892f362733465b5e3ae37fe6dbc37d Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sat, 30 Sep 2017 06:30:11 -0700 Subject: [PATCH] build files to a directory named bin --- .gitignore | 1 + bin/.gitkeep | 0 mage.go | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 bin/.gitkeep create mode 100644 mage.go diff --git a/.gitignore b/.gitignore index 905171f..952c29d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store .env var +bin \ No newline at end of file diff --git a/bin/.gitkeep b/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/mage.go b/mage.go new file mode 100644 index 0000000..fb711c8 --- /dev/null +++ b/mage.go @@ -0,0 +1,59 @@ +// +build mage + +package main + +import ( + "context" + "log" + "os" + "os/exec" + "path/filepath" + + "github.com/jtolds/qod" +) + +var wd string + +func init() { + lwd, err := os.Getwd() + qod.ANE(err) + + wd = lwd +} + +const pkgBase = "git.xeserv.us/xena/route/" + +func shouldWork(ctx context.Context, env []string, dir string, cmdName string, args ...string) { + loc, err := exec.LookPath(cmdName) + qod.ANE(err) + + cmd := exec.CommandContext(ctx, loc, args...) + cmd.Dir = dir + cmd.Env = env + + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + + log.Printf("starting process, env: %v, pwd: %s, cmd: %s, args: %v", env, dir, loc, args) + err = cmd.Run() + qod.ANE(err) +} + +func goBuild(ctx context.Context, env []string, dir string, pkgname string) { + shouldWork(ctx, env, dir, "go", "build", pkgBase+pkgname) +} + +// Build builds the binaries for route and routed. +func Build() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + err := os.Mkdir("bin", 0777) + qod.ANE(err) + + d := filepath.Join(wd, "./bin") + + for _, pkg := range []string{"helloserver", "httpagent", "route", "routed"} { + goBuild(ctx, os.Environ(), d, "cmd/"+pkg) + } +}