Skip to content

Commit

Permalink
cmd/ent: rename init to new (#3311)
Browse files Browse the repository at this point in the history
* cmd: rename init to new

Signed-off-by: Giau. Tran Minh <hello@giautm.dev>

* doc: update guide to use new command

Signed-off-by: Giau. Tran Minh <hello@giautm.dev>

---------

Signed-off-by: Giau. Tran Minh <hello@giautm.dev>
  • Loading branch information
giautm committed Feb 12, 2023
1 parent 349b950 commit f4bdc36
Show file tree
Hide file tree
Showing 18 changed files with 47 additions and 31 deletions.
3 changes: 2 additions & 1 deletion cmd/ent/ent.go
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

0 comments on commit f4bdc36

Please sign in to comment.