From 341056af2a78a6e514443102cee20fd1a4ff2c89 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 29 May 2022 13:16:06 +0200 Subject: [PATCH] refcator: remove errors package (#5) BREAKING CHANGE: The `errors` package was removed. Plugins should switch to the native `logrus.fatal()` function instead. --- errors/errors.go | 81 ------------------------------------------------ urfave/doc.go | 38 ----------------------- 2 files changed, 119 deletions(-) delete mode 100644 errors/errors.go delete mode 100644 urfave/doc.go diff --git a/errors/errors.go b/errors/errors.go deleted file mode 100644 index 584980c..0000000 --- a/errors/errors.go +++ /dev/null @@ -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()) - } -} diff --git a/urfave/doc.go b/urfave/doc.go deleted file mode 100644 index 489b0f0..0000000 --- a/urfave/doc.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2019, Drone Plugins project authors -// Copyright (c) 2021, Robert Kaussow - -// 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