github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/command/translatableerror/plugin_commands_conflict_error.go (about) 1 package translatableerror 2 3 import "strings" 4 5 // PluginCommandConflictError is returned when a plugin command name conflicts 6 // with a native or existing plugin command name. 7 type PluginCommandsConflictError struct { 8 PluginName string 9 PluginVersion string 10 CommandNames []string 11 CommandAliases []string 12 } 13 14 func (e PluginCommandsConflictError) Error() string { 15 switch { 16 case len(e.CommandNames) > 0 && len(e.CommandAliases) > 0: 17 return "Plugin {{.PluginName}} v{{.PluginVersion}} could not be installed as it contains commands with names and aliases that are already used: {{.CommandNamesAndAliases}}." 18 case len(e.CommandNames) > 0: 19 return "Plugin {{.PluginName}} v{{.PluginVersion}} could not be installed as it contains commands with names that are already used: {{.CommandNames}}." 20 case len(e.CommandAliases) > 0: 21 return "Plugin {{.PluginName}} v{{.PluginVersion}} could not be installed as it contains commands with aliases that are already used: {{.CommandAliases}}." 22 default: 23 return "Plugin {{.PluginName}} v{{.PluginVersion}} could not be installed as it contains commands with names or aliases that are already used." 24 } 25 } 26 27 func (e PluginCommandsConflictError) Translate(translate func(string, ...interface{}) string) string { 28 return translate(e.Error(), map[string]interface{}{ 29 "PluginName": e.PluginName, 30 "PluginVersion": e.PluginVersion, 31 "CommandNames": strings.Join(e.CommandNames, ", "), 32 "CommandAliases": strings.Join(e.CommandAliases, ", "), 33 "CommandNamesAndAliases": strings.Join(append(e.CommandNames, e.CommandAliases...), ", "), 34 }) 35 }