break up Generate
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package generate
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
)
|
||||
|
||||
func outputWriter(filename string) (io.Writer, error) {
|
||||
if filename == "-" {
|
||||
return os.Stdout, nil
|
||||
}
|
||||
|
||||
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not open generated file %v: %v",
|
||||
filename, err)
|
||||
}
|
||||
return f, nil
|
||||
}
|
||||
|
||||
func ParseGenerateAndWrite(specFilename, schemaFilename string, out io.Writer) error {
|
||||
schema, err := getSchema(schemaFilename)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
document, err := getAndValidateQueries(specFilename, schema)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
code, err := Generate(schema, document)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = out.Write(code)
|
||||
return err
|
||||
}
|
||||
|
||||
func Main() {
|
||||
var err error
|
||||
defer func() {
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}()
|
||||
|
||||
if len(os.Args) != 4 {
|
||||
err = fmt.Errorf("usage: %s queries.graphql schema.graphql generated.go",
|
||||
os.Args[0])
|
||||
return
|
||||
}
|
||||
|
||||
out, err := outputWriter(os.Args[3])
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = ParseGenerateAndWrite(os.Args[1], os.Args[2], out)
|
||||
}
|
||||
Reference in New Issue
Block a user