From a1775a894326a9077f998d621c771baab6c3e601 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Fri, 30 Jan 2026 07:11:05 +0000 Subject: [PATCH] Add validators schema and code templates --- src/templates/go.handlebars | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/templates/go.handlebars diff --git a/src/templates/go.handlebars b/src/templates/go.handlebars new file mode 100644 index 0000000..23cd85b --- /dev/null +++ b/src/templates/go.handlebars @@ -0,0 +1,47 @@ +package main + +import ( + "flag" + "fmt" + "os" +) + +var version = "{{spec.version}}" + +{{#each spec.globalOptions}} +var {{goVarName name}} {{#if (eq type "string")}}string{{else if (eq type "number")}}int{{else if (eq type "boolean")}}bool{{else}}string{{/if}} +{{/each}} + +func main() { + {{#each spec.globalOptions}} + flag.{{#if (eq type "string")}}StringVar{{else if (eq type "number")}}IntVar{{else if (eq type "boolean")}}BoolVar{{else}}StringVar{{/if}}(&{{goVarName name}}, "{{name}}", {{#if default}}{{toJson default}}{{else}}nil{{/if}}, "{{escape description}}") + {{/each}} + + flag.Usage = func() { + fmt.Fprintf(os.Stderr, "{{spec.name}} - {{spec.description}}\\n\\nUsage:\\n %s [options] [args]\\n\\nOptions:\\n", os.Args[0]) + flag.PrintDefaults() + fmt.Fprintf(os.Stderr, "\\nCommands:\\n") + {{#each spec.commands}} + fmt.Fprintf(os.Stderr, " %-15s %s\\n", "{{name}}", "{{escape description}}") + {{/each}} + } + + flag.Parse() + + args := flag.Args() + if len(args) < 1 { + flag.Usage() + os.Exit(1) + } + + switch args[0] { + {{#each spec.commands}} + case "{{name}}": + fmt.Println("Command: {{name}}") + {{/each}} + default: + fmt.Printf("Unknown command: %s\\n", args[0]) + flag.Usage() + os.Exit(1) + } +}