admingo

package
v0.0.0-...-ae29a83 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CommandSet = &cli.Command{
	Name:    "admingo",
	Aliases: []string{"ag"},
	Usage:   "fast admin go 套件",
	Subcommands: []*cli.Command{
		CreateModuleCmd,
	},
}
View Source
var CreateModuleCmd = command.NewCommand("module", "生成业务模块",
	&CreateModuleConfig{
		OutDir: "internal/app",
	},
	command.WithAlias([]string{"m"}),
).AddHandler(
	command.InlineHandler[*CreateModuleConfig](func(c *cli.Context, config *CreateModuleConfig) error {
		cwd, err := os.Getwd()
		if err != nil {
			return fmt.Errorf("get current working directory: %w", err)
		}

		gm, err := gomod.ParseGoMod(path.Join(cwd, "go.mod"))
		if err != nil {
			return err
		}

		projectName := gm.ProjectName()
		packageName := strings.ToLower(strcase.ToCamel(config.Name))
		moduleName := packageName
		outputDir := path.Join(cwd, config.OutDir, packageName)
		outputPackage := path.Join(projectName, config.OutDir, packageName)

		e := task.NewParallelScheduler()
		e.AddTask(
			workflow.NewRenderEmbedTemplateWorkflow("templates/admingo/fx.go.tmpl", map[string]string{
				"projectName": projectName,
				"moduleName":  moduleName,
				"packageName": packageName,
			}, "fx", ".go", task.WithFolder(outputDir)),
		)
		e.AddTask(
			workflow.NewRenderEmbedTemplateWorkflow("templates/admingo/converter.go.tmpl", map[string]string{
				"packageName":   packageName,
				"outputPackage": outputPackage,
			}, "converter", ".go", task.WithFolder(outputDir)),
		)
		e.AddTask(
			workflow.NewRenderEmbedTemplateWorkflow("templates/admingo/schemas.go.tmpl", map[string]string{
				"packageName": packageName,
			}, "schemas", ".go", task.WithFolder(outputDir)),
		)
		e.AddTask(
			workflow.NewRenderEmbedTemplateWorkflow("templates/admingo/service.go.tmpl", map[string]string{
				"packageName": packageName,
			}, "service", ".go", task.WithFolder(outputDir)),
		)
		return e.Run()
	}),
).Create()

Functions

This section is empty.

Types

type CreateModuleConfig

type CreateModuleConfig struct {
	OutDir string `flag:"output-dir" alias:"o" usage:"输出目录"`
	Name   string `arg:"0" alias:"MODULE_NAME" validate:"required,identifier"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL