diff --git a/src/cli/Build.go b/src/cli/Build.go index 28510cd..bfb7e37 100644 --- a/src/cli/Build.go +++ b/src/cli/Build.go @@ -8,7 +8,6 @@ import ( "git.akyoto.dev/cli/q/src/build" "git.akyoto.dev/cli/q/src/config" - "git.akyoto.dev/cli/q/src/errors" ) // Build parses the arguments and creates a build. @@ -46,7 +45,7 @@ func buildExecutable(args []string) (*build.Build, error) { i++ if i >= len(args) { - return b, &errors.ExpectedCLIParameter{Parameter: "arch"} + return b, &ExpectedParameterError{Parameter: "arch"} } config.TargetArch = args[i] @@ -55,7 +54,7 @@ func buildExecutable(args []string) (*build.Build, error) { i++ if i >= len(args) { - return b, &errors.ExpectedCLIParameter{Parameter: "os"} + return b, &ExpectedParameterError{Parameter: "os"} } switch args[i] { @@ -66,12 +65,12 @@ func buildExecutable(args []string) (*build.Build, error) { case "windows": config.TargetOS = config.Windows default: - return b, &errors.InvalidParameterValue{Value: args[i], Parameter: "os"} + return b, &InvalidValueError{Value: args[i], Parameter: "os"} } default: if strings.HasPrefix(args[i], "-") { - return b, &errors.UnknownCLIParameter{Parameter: args[i]} + return b, &UnknownParameterError{Parameter: args[i]} } b.Files = append(b.Files, args[i]) @@ -79,7 +78,7 @@ func buildExecutable(args []string) (*build.Build, error) { } if config.TargetOS == config.Unknown { - return b, &errors.InvalidParameterValue{Value: runtime.GOOS, Parameter: "os"} + return b, &InvalidValueError{Value: runtime.GOOS, Parameter: "os"} } if len(b.Files) == 0 { diff --git a/src/cli/errors.go b/src/cli/errors.go new file mode 100644 index 0000000..5f675d6 --- /dev/null +++ b/src/cli/errors.go @@ -0,0 +1,34 @@ +package cli + +import "fmt" + +// ExpectedParameterError is created when a command line parameter is missing. +type ExpectedParameterError struct { + Parameter string +} + +// UnknownParameterError is created when a command line parameter is not recognized. +type UnknownParameterError struct { + Parameter string +} + +// InvalidValueError is created when a parameter has an invalid value. +type InvalidValueError struct { + Value string + Parameter string +} + +// Error generates the string representation. +func (err *ExpectedParameterError) Error() string { + return fmt.Sprintf("Expected parameter '%s'", err.Parameter) +} + +// Error generates the string representation. +func (err *UnknownParameterError) Error() string { + return fmt.Sprintf("Unknown parameter '%s'", err.Parameter) +} + +// Error generates the string representation. +func (err *InvalidValueError) Error() string { + return fmt.Sprintf("Invalid value '%s' for parameter '%s'", err.Value, err.Parameter) +} diff --git a/src/cli/exit.go b/src/cli/exit.go index 69f8460..aefa74e 100644 --- a/src/cli/exit.go +++ b/src/cli/exit.go @@ -3,23 +3,22 @@ package cli import ( "errors" "os/exec" - - xerrors "git.akyoto.dev/cli/q/src/errors" ) // exit returns the exit code depending on the error type. func exit(err error) int { var ( exit *exec.ExitError - expectedParameter *xerrors.ExpectedCLIParameter - unknownParameter *xerrors.UnknownCLIParameter + expectedParameter *ExpectedParameterError + unknownParameter *UnknownParameterError + invalidValue *InvalidValueError ) if errors.As(err, &exit) { return exit.ExitCode() } - if errors.As(err, &expectedParameter) || errors.As(err, &unknownParameter) { + if errors.As(err, &expectedParameter) || errors.As(err, &unknownParameter) || errors.As(err, &invalidValue) { return 2 } diff --git a/src/errors/ExpectedCLIParameter.go b/src/errors/ExpectedCLIParameter.go deleted file mode 100644 index 0c25c6b..0000000 --- a/src/errors/ExpectedCLIParameter.go +++ /dev/null @@ -1,13 +0,0 @@ -package errors - -import "fmt" - -// ExpectedCLIParameter error is created when a command line parameter is missing. -type ExpectedCLIParameter struct { - Parameter string -} - -// Error generates the string representation. -func (err *ExpectedCLIParameter) Error() string { - return fmt.Sprintf("Expected parameter '%s'", err.Parameter) -} diff --git a/src/errors/InvalidParameterValue.go b/src/errors/InvalidParameterValue.go deleted file mode 100644 index cd2989e..0000000 --- a/src/errors/InvalidParameterValue.go +++ /dev/null @@ -1,14 +0,0 @@ -package errors - -import "fmt" - -// InvalidParameterValue error is created when a parameter has an invalid value. -type InvalidParameterValue struct { - Value string - Parameter string -} - -// Error generates the string representation. -func (err *InvalidParameterValue) Error() string { - return fmt.Sprintf("Invalid value '%s' for parameter '%s'", err.Value, err.Parameter) -} diff --git a/src/errors/UnknownCLIParameter.go b/src/errors/UnknownCLIParameter.go deleted file mode 100644 index 136864e..0000000 --- a/src/errors/UnknownCLIParameter.go +++ /dev/null @@ -1,13 +0,0 @@ -package errors - -import "fmt" - -// UnknownCLIParameter error is created when a command line parameter is not recognized. -type UnknownCLIParameter struct { - Parameter string -} - -// Error generates the string representation. -func (err *UnknownCLIParameter) Error() string { - return fmt.Sprintf("Unknown parameter '%s'", err.Parameter) -}