package sslh import ( "fmt" "os" "path/filepath" "sslh-multiplex-lab/internal/services" ) func GenerateConfigFile(services []services.Service, serverIP, domain, outputPath string) error { config, err := GenerateConfig(services, serverIP, domain) if err != nil { return fmt.Errorf("failed to generate config: %w", err) } configContent := config.ToLibConfig() if err := os.MkdirAll(filepath.Dir(outputPath), 0755); err != nil { return fmt.Errorf("failed to create config directory: %w", err) } if err := os.WriteFile(outputPath, []byte(configContent), 0644); err != nil { return fmt.Errorf("failed to write config file: %w", err) } return nil } func ValidateConfig(config *Config) error { if len(config.Listen) == 0 { return fmt.Errorf("at least one listen address is required") } if len(config.Protocols) == 0 { return fmt.Errorf("at least one protocol route is required") } return nil }