Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/ent: rename init to new #3311

Merged
merged 2 commits into from
Feb 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion cmd/ent/ent.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ func main() {
log.SetFlags(0)
cmd := &cobra.Command{Use: "ent"}
cmd.AddCommand(
base.InitCmd(),
base.NewCmd(),
base.DescribeCmd(),
base.GenerateCmd(),
base.InitCmd(),
)
_ = cmd.Execute()
}
3 changes: 2 additions & 1 deletion cmd/entc/entc.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ func main() {
log.SetFlags(0)
cmd := &cobra.Command{Use: "entc"}
cmd.AddCommand(
base.InitCmd(),
base.NewCmd(),
base.DescribeCmd(),
base.GenerateCmd(migrate),
base.InitCmd(),
)
_ = cmd.Execute()
}
Expand Down
38 changes: 26 additions & 12 deletions cmd/internal/base/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,28 @@ func (IDType) String() string {

// InitCmd returns the init command for ent/c packages.
func InitCmd() *cobra.Command {
c := NewCmd()
c.Use = "init [flags] [schemas]"
c.Short = "initialize an environment with zero or more schemas"
c.Example = examples(
"ent init Example",
"ent init --target entv1/schema User Group",
"ent init --template ./path/to/file.tmpl User",
)
c.Deprecated = "use `ent new` instead"
return c
}

// NewCmd returns the new command for ent/c packages.
func NewCmd() *cobra.Command {
var target, tmplPath string
cmd := &cobra.Command{
Use: "init [flags] [schemas]",
Short: "initialize an environment with zero or more schemas",
Use: "new [flags] [schemas]",
Short: "new an environment with zero or more schemas",
Example: examples(
"ent init Example",
"ent init --target entv1/schema User Group",
"ent init --template ./path/to/file.tmpl User",
"ent new Example",
"ent new --target entv1/schema User Group",
"ent new --template ./path/to/file.tmpl User",
),
Args: func(_ *cobra.Command, names []string) error {
for _, name := range names {
Expand All @@ -92,10 +106,10 @@ func InitCmd() *cobra.Command {
tmpl, err = template.New("schema").Parse(defaultTemplate)
}
if err != nil {
log.Fatalln(fmt.Errorf("ent/init: could not parse template %w", err))
log.Fatalln(fmt.Errorf("ent/new: could not parse template %w", err))
}
if err := initEnv(target, names, tmpl); err != nil {
log.Fatalln(fmt.Errorf("ent/init: %w", err))
if err := newEnv(target, names, tmpl); err != nil {
log.Fatalln(fmt.Errorf("ent/new: %w", err))
}
},
}
Expand Down Expand Up @@ -189,17 +203,17 @@ func GenerateCmd(postRun ...func(*gen.Config)) *cobra.Command {
return cmd
}

// initEnv initialize an environment for ent codegen.
func initEnv(target string, names []string, tmpl *template.Template) error {
// newEnv create an new environment for ent codegen.
func newEnv(target string, names []string, tmpl *template.Template) error {
if err := createDir(target); err != nil {
return fmt.Errorf("create dir %s: %w", target, err)
}
for _, name := range names {
if err := gen.ValidSchemaName(name); err != nil {
return fmt.Errorf("init schema %s: %w", name, err)
return fmt.Errorf("new schema %s: %w", name, err)
}
if fileExists(target, name) {
return fmt.Errorf("init schema %s: already exists", name)
return fmt.Errorf("new schema %s: already exists", name)
}
b := bytes.NewBuffer(nil)
if err := tmpl.Execute(b, name); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion doc/md/code-gen.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ go get -d entgo.io/ent/cmd/ent
In order to generate one or more schema templates, run `ent init` as follows:

```bash
go run -mod=mod entgo.io/ent/cmd/ent init User Pet
go run -mod=mod entgo.io/ent/cmd/ent new User Pet
```

`init` will create the 2 schemas (`user.go` and `pet.go`) under the `ent/schema` directory.
Expand Down
4 changes: 2 additions & 2 deletions doc/md/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ go mod init entdemo
Go to the root directory of your project, and run:

```console
go run -mod=mod entgo.io/ent/cmd/ent init User
go run -mod=mod entgo.io/ent/cmd/ent new User
```

The command above will generate the schema for `User` under `entdemo/ent/schema/` directory:
Expand Down Expand Up @@ -264,7 +264,7 @@ Let's create 2 additional entities named `Car` and `Group` with a few fields. We
to generate the initial schemas:

```console
go run -mod=mod entgo.io/ent/cmd/ent init Car Group
go run -mod=mod entgo.io/ent/cmd/ent new Car Group
```

And then we add the rest of the fields manually:
Expand Down
2 changes: 1 addition & 1 deletion doc/md/schema-def.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Entity schemas are usually stored inside `ent/schema` directory under
the root directory of your project, and can be generated by `entc` as follows:

```console
go run -mod=mod entgo.io/ent/cmd/ent init User Group
go run -mod=mod entgo.io/ent/cmd/ent new User Group
```

:::note
Expand Down
2 changes: 1 addition & 1 deletion doc/md/traversals.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ For the purpose of the example, we'll generate the following graph:
The first step is to generate the 3 schemas: `Pet`, `User`, `Group`.

```console
go run -mod=mod entgo.io/ent/cmd/ent init Pet User Group
go run -mod=mod entgo.io/ent/cmd/ent new Pet User Group
```

Add the necessary fields and edges for the schemas:
Expand Down
2 changes: 1 addition & 1 deletion doc/md/tutorial-grpc-setting-up.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ go mod init ent-grpc-example
Next, we use `go run` to invoke the ent code generator to initialize a schema:

```console
go run -mod=mod entgo.io/ent/cmd/ent init User
go run -mod=mod entgo.io/ent/cmd/ent new User
```

Our directory should now look like:
Expand Down
4 changes: 2 additions & 2 deletions doc/md/tutorial-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ go get -d entgo.io/ent/cmd/ent
```

```console
go run -mod=mod entgo.io/ent/cmd/ent init Todo
go run -mod=mod entgo.io/ent/cmd/ent new Todo
```

After installing Ent and running `ent init`, your project directory should look like this:
Expand All @@ -49,7 +49,7 @@ entity schemas.

## Code Generation

When we ran `ent init Todo` above, a schema named `Todo` was created in the `todo.go` file under the`todo/ent/schema/` directory:
When we ran `ent new Todo` above, a schema named `Todo` was created in the `todo.go` file under the`todo/ent/schema/` directory:

```go
package schema
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ go mod init ent-grpc-example
Next we use `go run` to invoke the ent code generator to initialize a schema:

```console
go run -mod=mod entgo.io/ent/cmd/ent init User
go run -mod=mod entgo.io/ent/cmd/ent new User
```

Our directory should now look like:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ go mod init elk-example
Invoke the ent code generator and create two schemas: User, Pet:

```shell
go run -mod=mod entgo.io/ent/cmd/ent init Pet User
go run -mod=mod entgo.io/ent/cmd/ent new Pet User
```

Your project should now look like this:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Open the html file with your favorite browser to see the visualization

Next, let's add another entity named Post, and see how our visualization changes:
```bash
ent init Post
ent new Post
```
```go title="ent/schema/post.go"
// Fields of the Post.
Expand Down
2 changes: 1 addition & 1 deletion doc/website/blog/2021-09-10-openapi-generator.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ over to the [Setup Tutorial](https://entgo.io/docs/tutorial-setup/).
The first step on our way to the OAS file is to create an Ent schema graph:

```shell
go run -mod=mod entgo.io/ent/cmd/ent init Fridge Compartment Item
go run -mod=mod entgo.io/ent/cmd/ent new Fridge Compartment Item
```

To demonstrate `elk`'s OAS generation capabilities, we will build together an example application. Suppose I have
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ go mod init entimport-example
Run Ent Init:

```shell
go run -mod=mod entgo.io/ent/cmd/ent init
go run -mod=mod entgo.io/ent/cmd/ent new
```

The project should look like this:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ In our example, we are going to create a simple `User` schema with 2 immutable s
`"avatar_url"`. Let's run the `ent init` command for creating a skeleton schema for our `User`:

```shell
go run entgo.io/ent/cmd/ent init User
go run entgo.io/ent/cmd/ent new User
```

Then, add the `name` and the `avatar_url` fields and run `go generate` to generate the assets.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ go mod init entgo-aws-appsync
Third, we create the `Todo` schema while pulling in the ent dependencies:

```console
go run -mod=mod entgo.io/ent/cmd/ent init Todo
go run -mod=mod entgo.io/ent/cmd/ent new Todo
```

and add the `title` field:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ mkdir ent-sum-file
cd ent-sum-file
go mod init ent-sum-file
go install entgo.io/ent/cmd/ent@master
go run entgo.io/ent/cmd/ent init User
go run entgo.io/ent/cmd/ent new User
sed -i -E 's|^//go(.*)$|//go\1 --feature sql/versioned-migration|' ent/generate.go
go generate ./...
docker run --rm --name atlas-sum --detach --env MYSQL_ROOT_PASSWORD=pass --env MYSQL_DATABASE=ent -p 3306:3306 mysql
Expand Down
2 changes: 1 addition & 1 deletion examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ For the purpose of the example, we'll generate the following graph:
The first step is to generate the 3 schemas: `Pet`, `User`, `Group`.

```console
ent init Pet User Group
ent new Pet User Group
```

Add the necessary fields and edges for the schemas:
Expand Down