From 6664d3de16c2f8e826e4fe0622c246d3e2d8c9e9 Mon Sep 17 00:00:00 2001 From: ginokent <29125616+ginokent@users.noreply.github.com> Date: Mon, 25 Jul 2022 15:11:59 +0900 Subject: [PATCH] Add debug output (#29) --- main.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index d45ca1a..d870451 100644 --- a/main.go +++ b/main.go @@ -12,6 +12,7 @@ import ( "math/big" "os" "reflect" + "strconv" "strings" "time" @@ -26,13 +27,16 @@ const ( optNameProjectID = "project" optNameDataset = "dataset" optNameOutputFile = "output" + optNameDebug = "debug" // envName envNameGCloudProjectID = "GCLOUD_PROJECT_ID" envNameBigQueryDataset = "BIGQUERY_DATASET" envNameOutputFile = "OUTPUT_FILE" + envNameDebug = "DEBUG" // defaultValue defaultValueEmpty = "" defaultValueOutputFile = "bqschema.generated.go" + defaultValueDebug = "false" ) var ( @@ -75,6 +79,13 @@ func Run(ctx context.Context) (err error) { return fmt.Errorf("getOptOrEnvOrDefault: %w", err) } + var debugString string + debugString, err = getOptOrEnvOrDefault(optNameDebug, *optValueOutputPath, envNameDebug, defaultValueDebug) + if err != nil { + return fmt.Errorf("getOptOrEnvOrDefault: %w", err) + } + debug, _ := strconv.ParseBool(debugString) + client, err := bigquery.NewClient(ctx, project) if err != nil { return fmt.Errorf("bigquery.NewClient: %w", err) @@ -85,7 +96,7 @@ func Run(ctx context.Context) (err error) { } }() - generatedCode, err := Generate(ctx, client, dataset) + generatedCode, err := Generate(ctx, client, dataset, debug) if err != nil { return fmt.Errorf("Generate: %w", err) } @@ -98,7 +109,7 @@ func Run(ctx context.Context) (err error) { return nil } -func Generate(ctx context.Context, client *bigquery.Client, dataset string) (generatedCode []byte, err error) { +func Generate(ctx context.Context, client *bigquery.Client, dataset string, debug bool) (generatedCode []byte, err error) { const head = `// Code generated by go run github.com/ginokent/bqschema-gen-go; DO NOT EDIT. @@ -135,6 +146,12 @@ package bqschema // NOTE(ginokent): combine code := head + importCode + tail + if debug { + fmt.Println(">>>> DEBUG >>>>>>>>>>>>>>>>") + fmt.Println(code) + fmt.Println("<<<< DEBUG <<<<<<<<<<<<<<<<") + } + gen := []byte(code) genFmt, err := format.Source(gen) @@ -142,6 +159,12 @@ package bqschema return nil, fmt.Errorf("format.Source: %w", err) } + if debug { + fmt.Println(">>>> DEBUG >>>>>>>>>>>>>>>>") + fmt.Println(string(genFmt)) + fmt.Println("<<<< DEBUG <<<<<<<<<<<<<<<<") + } + genImports, err := imports.Process("", genFmt, nil) if err != nil { return nil, fmt.Errorf("imports.Process: %w", err)