From 0dcd124c8e0e70b32cffe62822ca26c77184ea03 Mon Sep 17 00:00:00 2001 From: Ben Kraft Date: Thu, 6 Feb 2020 18:51:44 -0800 Subject: [PATCH] fix filenames, set up go generate --- example/README.md | 3 +-- example/caller.go | 2 ++ generate/generate.go | 8 ++++++-- cmd/genql/main.go => main.go | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) rename cmd/genql/main.go => main.go (56%) diff --git a/example/README.md b/example/README.md index a6a36c1..3de5a22 100644 --- a/example/README.md +++ b/example/README.md @@ -17,8 +17,7 @@ csilvers is Craig Silverstein It's already checked in to github, but to generate `generated.go`: ```sh -rm example/generated.go -go run ./cmd/genql/main.go example/genql.yaml +go generate ./... ``` ## Generating the schema files diff --git a/example/caller.go b/example/caller.go index b74e308..53090c3 100644 --- a/example/caller.go +++ b/example/caller.go @@ -60,3 +60,5 @@ func Main() { } fmt.Println(username, "is", *userResp.User.TheirName) } + +//go:generate go run github.com/Khan/genql genql.yaml diff --git a/generate/generate.go b/generate/generate.go index b293ed3..ffe88c5 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -4,6 +4,8 @@ import ( "bytes" "fmt" "go/format" + "path/filepath" + "runtime" "strings" "text/template" @@ -12,9 +14,11 @@ import ( ) // TODO: package template into the binary using one of those asset thingies -const tmplFilename = "generate/operation.go.tmpl" +var _, thisFilename, _, _ = runtime.Caller(0) +var tmplRelFilename = "operation.go.tmpl" +var tmplAbsFilename = filepath.Join(filepath.Dir(thisFilename), tmplRelFilename) -var tmpl = template.Must(template.ParseFiles(tmplFilename)) +var tmpl = template.Must(template.ParseFiles(tmplAbsFilename)) type templateParams struct { // The name of the package into which to generate the operation-helpers. diff --git a/cmd/genql/main.go b/main.go similarity index 56% rename from cmd/genql/main.go rename to main.go index 0620d99..1d845e1 100644 --- a/cmd/genql/main.go +++ b/main.go @@ -1,3 +1,4 @@ +// package main is at the root to allow "go run github.com/Khan/genql" package main import (