Skip to content

Instantly share code, notes, and snippets.

@bryanl
Created November 5, 2019 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bryanl/ea1b59a9a4f03fbc0fd9c73bb724307e to your computer and use it in GitHub Desktop.
Save bryanl/ea1b59a9a4f03fbc0fd9c73bb724307e to your computer and use it in GitHub Desktop.
package main
import (
"flag"
"log"
"os"
"os/exec"
"path/filepath"
"github.com/sirupsen/logrus"
)
func main() {
flag.Parse()
for _, cmd := range flag.Args() {
switch cmd {
case "generate":
generate()
case "install":
install()
default:
log.Fatalf("Unknown command %q", cmd)
}
}
}
func runGo(args ...string) error {
cmd := exec.Command("go", args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = os.Environ()
return cmd.Run()
}
func generate() {
if err := runGo("generate", "./tools/..."); err != nil {
logrus.WithError(err).Fatal("generate")
}
}
func install() {
generate()
goPath := os.Getenv("GOPATH")
if goPath == "" {
logrus.Fatal("GOPATH was not set")
}
binPath := filepath.Join(goPath, "bin", "koci")
args := []string{"build", "-o", binPath, "github.com/bryanl/koci/cmd/koci"}
if err := runGo(args...); err != nil {
logrus.WithError(err).Fatal("build and install koci")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment