63 lines
2.1 KiB
Go
63 lines
2.1 KiB
Go
// Code generated by mcp-framework generate. DO NOT EDIT.
|
|
|
|
package mcpgen
|
|
|
|
import (
|
|
"flag"
|
|
"strings"
|
|
|
|
fwcli "forge.lclr.dev/AI/mcp-framework/cli"
|
|
)
|
|
|
|
type ConfigFlags struct {
|
|
values map[string]*string
|
|
}
|
|
|
|
func AddConfigFlags(fs *flag.FlagSet) ConfigFlags {
|
|
if fs == nil {
|
|
fs = flag.CommandLine
|
|
}
|
|
|
|
flags := ConfigFlags{
|
|
values: make(map[string]*string),
|
|
}
|
|
|
|
return flags
|
|
}
|
|
|
|
func ConfigFlagValues(flags ConfigFlags) map[string]string {
|
|
values := make(map[string]string)
|
|
for name, value := range flags.values {
|
|
if value == nil {
|
|
continue
|
|
}
|
|
if trimmed := strings.TrimSpace(*value); trimmed != "" {
|
|
values[name] = trimmed
|
|
}
|
|
}
|
|
return values
|
|
}
|
|
|
|
func ResolveFieldSpecs(profile string) []fwcli.FieldSpec {
|
|
return []fwcli.FieldSpec{
|
|
{Name: "host", Required: true, DefaultValue: "", Sources: []fwcli.ValueSource{fwcli.SourceEnv, fwcli.SourceConfig}, FlagKey: "", EnvKey: "EMAIL_MCP_HOST", ConfigKey: "host", SecretKey: replaceProfile("", profile)},
|
|
{Name: "username", Required: true, DefaultValue: "", Sources: []fwcli.ValueSource{fwcli.SourceEnv, fwcli.SourceConfig}, FlagKey: "", EnvKey: "EMAIL_MCP_USERNAME", ConfigKey: "username", SecretKey: replaceProfile("", profile)},
|
|
{Name: "password", Required: true, DefaultValue: "", Sources: []fwcli.ValueSource{fwcli.SourceEnv, fwcli.SourceSecret}, FlagKey: "", EnvKey: "EMAIL_MCP_PASSWORD", ConfigKey: "", SecretKey: replaceProfile("imap-password/{profile}", profile)},
|
|
}
|
|
}
|
|
|
|
func SetupFields(existing map[string]string) []fwcli.SetupField {
|
|
if existing == nil {
|
|
existing = map[string]string{}
|
|
}
|
|
|
|
return []fwcli.SetupField{
|
|
{Name: "host", Label: "IMAP host", Type: fwcli.SetupFieldString, Required: true, Default: "", ExistingSecret: existing["host"]},
|
|
{Name: "username", Label: "Username", Type: fwcli.SetupFieldString, Required: true, Default: "", ExistingSecret: existing["username"]},
|
|
{Name: "password", Label: "Password", Type: fwcli.SetupFieldSecret, Required: true, Default: "", ExistingSecret: existing["password"]},
|
|
}
|
|
}
|
|
|
|
func replaceProfile(value, profile string) string {
|
|
return strings.ReplaceAll(value, "{profile}", strings.TrimSpace(profile))
|
|
}
|