Made error types public
All checks were successful
/ test (push) Successful in 15s

This commit is contained in:
Eduard Urbach 2025-07-03 17:41:28 +02:00
parent 85cea5cbee
commit 72ace483e4
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
3 changed files with 19 additions and 22 deletions

View file

@ -41,7 +41,7 @@ func newBuildFromArgs(args []string) (*build.Build, error) {
i++ i++
if i >= len(args) { if i >= len(args) {
return b, &expectedParameterError{Parameter: "arch"} return b, &ExpectedParameter{Parameter: "arch"}
} }
switch args[i] { switch args[i] {
@ -50,7 +50,7 @@ func newBuildFromArgs(args []string) (*build.Build, error) {
case "x86": case "x86":
b.Arch = build.X86 b.Arch = build.X86
default: default:
return b, &invalidValueError{Value: args[i], Parameter: "arch"} return b, &InvalidValue{Value: args[i], Parameter: "arch"}
} }
case "--dry": case "--dry":
@ -60,7 +60,7 @@ func newBuildFromArgs(args []string) (*build.Build, error) {
i++ i++
if i >= len(args) { if i >= len(args) {
return b, &expectedParameterError{Parameter: "os"} return b, &ExpectedParameter{Parameter: "os"}
} }
switch args[i] { switch args[i] {
@ -71,7 +71,7 @@ func newBuildFromArgs(args []string) (*build.Build, error) {
case "windows": case "windows":
b.OS = build.Windows b.OS = build.Windows
default: default:
return b, &invalidValueError{Value: args[i], Parameter: "os"} return b, &InvalidValue{Value: args[i], Parameter: "os"}
} }
case "-v", "--verbose": case "-v", "--verbose":
@ -79,7 +79,7 @@ func newBuildFromArgs(args []string) (*build.Build, error) {
default: default:
if strings.HasPrefix(args[i], "-") { if strings.HasPrefix(args[i], "-") {
return b, &unknownParameterError{Parameter: args[i]} return b, &UnknownParameter{Parameter: args[i]}
} }
b.Files = append(b.Files, args[i]) b.Files = append(b.Files, args[i])
@ -87,11 +87,11 @@ func newBuildFromArgs(args []string) (*build.Build, error) {
} }
if b.OS == build.UnknownOS { if b.OS == build.UnknownOS {
return b, &invalidValueError{Value: runtime.GOOS, Parameter: "os"} return b, &InvalidValue{Value: runtime.GOOS, Parameter: "os"}
} }
if b.Arch == build.UnknownArch { if b.Arch == build.UnknownArch {
return b, &invalidValueError{Value: runtime.GOARCH, Parameter: "arch"} return b, &InvalidValue{Value: runtime.GOARCH, Parameter: "arch"}
} }
if len(b.Files) == 0 { if len(b.Files) == 0 {

View file

@ -2,33 +2,30 @@ package cli
import "fmt" import "fmt"
// expectedParameterError is created when a command line parameter is missing. // ExpectedParameter is created when a command line parameter is missing.
type expectedParameterError struct { type ExpectedParameter struct {
Parameter string Parameter string
} }
// Error implements the error interface. func (err *ExpectedParameter) Error() string {
func (err *expectedParameterError) Error() string {
return fmt.Sprintf("Expected parameter '%s'", err.Parameter) return fmt.Sprintf("Expected parameter '%s'", err.Parameter)
} }
// invalidValueError is created when a parameter has an invalid value. // InvalidValue is created when a parameter has an invalid value.
type invalidValueError struct { type InvalidValue struct {
Value string Value string
Parameter string Parameter string
} }
// Error implements the error interface. func (err *InvalidValue) Error() string {
func (err *invalidValueError) Error() string {
return fmt.Sprintf("Invalid value '%s' for parameter '%s'", err.Value, err.Parameter) return fmt.Sprintf("Invalid value '%s' for parameter '%s'", err.Value, err.Parameter)
} }
// unknownParameterError is created when a command line parameter is not recognized. // UnknownParameter is created when a command line parameter is not recognized.
type unknownParameterError struct { type UnknownParameter struct {
Parameter string Parameter string
} }
// Error implements the error interface. func (err *UnknownParameter) Error() string {
func (err *unknownParameterError) Error() string {
return fmt.Sprintf("Unknown parameter '%s'", err.Parameter) return fmt.Sprintf("Unknown parameter '%s'", err.Parameter)
} }

View file

@ -17,9 +17,9 @@ func exit(err error) int {
var ( var (
exit *exec.ExitError exit *exec.ExitError
expectedParameter *expectedParameterError expectedParameter *ExpectedParameter
unknownParameter *unknownParameterError unknownParameter *UnknownParameter
invalidValue *invalidValueError invalidValue *InvalidValue
) )
if errors.As(err, &exit) { if errors.As(err, &exit) {