# 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.