cmd/ent: rename init to new (#3311)

* 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>
This commit is contained in:
Giau. Tran Minh
2023-02-12 18:56:18 +07:00
committed by GitHub
parent 349b950978
commit f4bdc36e85
18 changed files with 47 additions and 31 deletions

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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 {
@@ -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))
}
},
}
@@ -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 {

View File

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

View File

@@ -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:
@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:
@@ -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

View File

@@ -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:

View File

@@ -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:

View File

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

View File

@@ -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

View File

@@ -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:

View File

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

View File

@@ -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:

View File

@@ -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

View File

@@ -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: