refcator: remove errors package (#5)

BREAKING CHANGE: The `errors` package was removed. Plugins should switch to the native `logrus.fatal()` function instead.
This commit is contained in:
Robert Kaussow 2022-05-29 13:16:06 +02:00 committed by GitHub
parent dcb03e1fa3
commit 341056af2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 0 additions and 119 deletions

View File

@ -1,81 +0,0 @@
package errors
import (
"fmt"
"os"
"github.com/sirupsen/logrus"
)
// ExitCoder defines the interface for exit code handling.
type ExitCoder interface {
error
Code() int
Fields() logrus.Fields
}
// ExitError simply implements the defined interface.
type ExitError struct {
message interface{}
code int
fields logrus.Fields
}
// Error implements the ExitCoder interface.
func (e ExitError) Error() string {
return fmt.Sprintf("%v", e.message)
}
// Code implements the ExitCoder interface.
func (e ExitError) Code() int {
return e.code
}
// Fields implements the ExitCoder interface.
func (e ExitError) Fields() logrus.Fields {
return e.fields
}
// ExitMessage initializes a new ExitCoder implementation.
func ExitMessage(message interface{}) ExitError {
return ExitError{
message: message,
code: 1,
}
}
// ExitMessagef initializes a new ExitCoder implementation.
func ExitMessagef(format string, a ...interface{}) ExitError {
return ExitError{
message: fmt.Errorf(format, a...),
code: 1,
}
}
// WithFields initializes a new ExitCoder implementation.
func WithFields(message interface{}, fields logrus.Fields) ExitError {
return ExitError{
message: message,
code: 1,
fields: fields,
}
}
// HandleExit ist used within the main handler to exit properly.
func HandleExit(err error) {
if err == nil {
return
}
if e, ok := err.(ExitCoder); ok {
if e.Error() != "" {
logrus.WithFields(
e.Fields(),
).Error(
e.Error(),
)
}
os.Exit(e.Code())
}
}

View File

@ -1,38 +0,0 @@
// Copyright (c) 2019, Drone Plugins project authors
// Copyright (c) 2021, Robert Kaussow <mail@thegeeklab.de>
// Use of this source code is governed by an Apache 2.0 license that can be
// found in the LICENSE file.
// Package urfave provides helpers for interacting with the `urfave/cli`
// package when creating plugins for use by the Drone CI/CD service.
//
// Drone communicates to plugins by passing in environment variables that have
// information on the currently executing build. The `urfave/cli` package can
// read these environment variables and extract them into structs.
//
// import (
// "github.com/thegeeklab/drone-plugin-lib/urfave"
// "github.com/urfave/cli/v2"
// )
//
// func main() {
// app := cli.NewApp()
// app.Name = "plugin name"
// app.Action = run
// app.Flags = []cli.Flag{
// // All my plugin flags
// }
//
// app.Flags = append(
// app.Flags,
// urfave.Flags()...,
// )
// }
//
// func run(ctx *cli.Context) error {
// pipeline := urfave.FromContext(ctx)
// ...
// return nil
// }
package urfave