diff --git a/cmd/builder/command/init.go b/cmd/builder/command/init.go index 67c20f8f11..994906987f 100644 --- a/cmd/builder/command/init.go +++ b/cmd/builder/command/init.go @@ -91,6 +91,7 @@ func initRun(cmd *cobra.Command, args []string) { utils.ExitWithErrorf("directory %s is not empty, please call init in an empty directory", cwd) } + initBuildYaml(cmd, cwd) initGenerateFiles(cmd, cwd) initGenerateMod(ctx, cmd) err = initConfig.Save(cwd) @@ -99,6 +100,14 @@ func initRun(cmd *cobra.Command, args []string) { } } +func initBuildYaml(_ *cobra.Command, cwd string) { + err := initConfig.GenBuildYaml(cwd) + if err != nil { + utils.ExitWithError(err) + } + fmt.Println("generate build.yaml success") +} + func initGenerateFiles(_ *cobra.Command, cwd string) { err := initConfig.GenFilters(cwd) if err != nil { diff --git a/cmd/builder/gen/config.go b/cmd/builder/gen/config.go index 3c94e540f3..d7fd3c889c 100644 --- a/cmd/builder/gen/config.go +++ b/cmd/builder/gen/config.go @@ -91,6 +91,29 @@ func (c *Config) CheckDuplicate(conf *Config) error { return nil } +func (c *Config) GenBuildYaml(dir string) error { + buildYaml := ` +# egVersion: the version of Easegress used for building. Supports versions v2.5.2 and later. +# An empty egVersion value means using the latest version of Easegress. +egVersion: "" + +# plugins: custom plugins. +# It is recommended to use plugins created with "egbuilder init". +# Generally, any plugin containing "registry/registry.go" can utilize the "egbuilder build" command. +# You can initialize a project to see for yourself. +plugins: +- module: %s + version: "" + replacement: "." + +# output: path of output file. +output: "./easegress-server" +` + buildYaml = fmt.Sprintf(buildYaml, c.Repo) + fileName := path.Join(dir, "build.yaml") + return os.WriteFile(fileName, []byte(buildYaml), os.ModePerm) +} + func (c *Config) GenFilters(dir string) error { for _, f := range c.Filters { err := os.MkdirAll(getModulePath(dir, moduleFilter, f, false), os.ModePerm) diff --git a/cmd/builder/gen/filters.go b/cmd/builder/gen/filters.go index 04b6264173..f9380b0a6f 100644 --- a/cmd/builder/gen/filters.go +++ b/cmd/builder/gen/filters.go @@ -177,7 +177,8 @@ func defineFilterMethods(file *j.File, info *FilterInfo) { handleFunc.Params = []j.Code{j.Id("ctx").Op("*").Qual(egContext, "Context")} handleFunc.Returns = []j.Code{j.String()} handleFunc.Block = []j.Code{ - j.Comment("hint: req := ctx.GetRequest().(*httpprot.Request)"), + j.Comment("hint: req := ctx.GetInputRequest().(*httpprot.Request)"), + j.Comment("hint: use req.HTTPHeader() to get the http headers"), j.Comment("empty string means success"), j.Comment(yourCodeHere), j.Return(j.Lit("")),