mirror of
https://github.com/ent/ent.git
synced 2026-05-22 09:31:45 +03:00
Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/72 Reviewed By: alexsn Differential Revision: D17783580 fbshipit-source-id: 597f124a28415fef66b0b16811ad2acac8df631d
48 lines
1.3 KiB
Markdown
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. |