Files
ent/examples/entcpkg/README.md
Ariel Mashraki 7597f07912 entc: add option to use entc as package
Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/72

Reviewed By: alexsn

Differential Revision: D17783580

fbshipit-source-id: 597f124a28415fef66b0b16811ad2acac8df631d
2019-10-07 07:06:32 -07:00

48 lines
1.3 KiB
Markdown

# entcpkg example
An example of using `entc` (ent codegen) as package rather than an executable.
In this example, we have a file named `entc.go` under the `./ent` directory, that holds the
configuration for the codegen:
```go
// +build ignore
package main
import (
"log"
"github.com/facebookincubator/ent/entc"
"github.com/facebookincubator/ent/entc/gen"
"github.com/facebookincubator/ent/schema/field"
)
func main() {
err := entc.Generate("./schema", &gen.Config{
Header: `
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
// This source code is licensed under the Apache 2.0 license found
// in the LICENSE file in the root directory of this source tree.
// Code generated (@generated) by entc, DO NOT EDIT.
`,
IDType: &field.TypeInfo{Type: field.TypeInt},
})
if err != nil {
log.Fatal("running ent codegen:", err)
}
}
```
As you can see, the file is tagged with `// +build ignore` in order to not include it
in the `ent` package. In order to run the codegen, run the file itself (using `go run`)
or run `go generate ./ent`. The `generate.go` file holds the `go run command`:
```go
package ent
//go:generate go run entc.go
```
The `generate.go` file is preferred if you have many `generate` pragmas in your project.