summaryrefslogtreecommitdiff
path: root/vendor/github.com/magefile/mage/mg
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/magefile/mage/mg')
-rw-r--r--vendor/github.com/magefile/mage/mg/color.go80
-rw-r--r--vendor/github.com/magefile/mage/mg/color_string.go38
-rw-r--r--vendor/github.com/magefile/mage/mg/deps.go352
-rw-r--r--vendor/github.com/magefile/mage/mg/errors.go51
-rw-r--r--vendor/github.com/magefile/mage/mg/runtime.go136
5 files changed, 0 insertions, 657 deletions
diff --git a/vendor/github.com/magefile/mage/mg/color.go b/vendor/github.com/magefile/mage/mg/color.go
deleted file mode 100644
index 3e2710332..000000000
--- a/vendor/github.com/magefile/mage/mg/color.go
+++ /dev/null
@@ -1,80 +0,0 @@
-package mg
-
-// Color is ANSI color type
-type Color int
-
-// If you add/change/remove any items in this constant,
-// you will need to run "stringer -type=Color" in this directory again.
-// NOTE: Please keep the list in an alphabetical order.
-const (
- Black Color = iota
- Red
- Green
- Yellow
- Blue
- Magenta
- Cyan
- White
- BrightBlack
- BrightRed
- BrightGreen
- BrightYellow
- BrightBlue
- BrightMagenta
- BrightCyan
- BrightWhite
-)
-
-// AnsiColor are ANSI color codes for supported terminal colors.
-var ansiColor = map[Color]string{
- Black: "\u001b[30m",
- Red: "\u001b[31m",
- Green: "\u001b[32m",
- Yellow: "\u001b[33m",
- Blue: "\u001b[34m",
- Magenta: "\u001b[35m",
- Cyan: "\u001b[36m",
- White: "\u001b[37m",
- BrightBlack: "\u001b[30;1m",
- BrightRed: "\u001b[31;1m",
- BrightGreen: "\u001b[32;1m",
- BrightYellow: "\u001b[33;1m",
- BrightBlue: "\u001b[34;1m",
- BrightMagenta: "\u001b[35;1m",
- BrightCyan: "\u001b[36;1m",
- BrightWhite: "\u001b[37;1m",
-}
-
-// AnsiColorReset is an ANSI color code to reset the terminal color.
-const AnsiColorReset = "\033[0m"
-
-// DefaultTargetAnsiColor is a default ANSI color for colorizing targets.
-// It is set to Cyan as an arbitrary color, because it has a neutral meaning
-var DefaultTargetAnsiColor = ansiColor[Cyan]
-
-func toLowerCase(s string) string {
- // this is a naive implementation
- // borrowed from https://golang.org/src/strings/strings.go
- // and only considers alphabetical characters [a-zA-Z]
- // so that we don't depend on the "strings" package
- buf := make([]byte, len(s))
- for i := 0; i < len(s); i++ {
- c := s[i]
- if 'A' <= c && c <= 'Z' {
- c += 'a' - 'A'
- }
- buf[i] = c
- }
- return string(buf)
-}
-
-func getAnsiColor(color string) (string, bool) {
- colorLower := toLowerCase(color)
- for k, v := range ansiColor {
- colorConstLower := toLowerCase(k.String())
- if colorConstLower == colorLower {
- return v, true
- }
- }
- return "", false
-}
diff --git a/vendor/github.com/magefile/mage/mg/color_string.go b/vendor/github.com/magefile/mage/mg/color_string.go
deleted file mode 100644
index 06debca54..000000000
--- a/vendor/github.com/magefile/mage/mg/color_string.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Code generated by "stringer -type=Color"; DO NOT EDIT.
-
-package mg
-
-import "strconv"
-
-func _() {
- // An "invalid array index" compiler error signifies that the constant values have changed.
- // Re-run the stringer command to generate them again.
- var x [1]struct{}
- _ = x[Black-0]
- _ = x[Red-1]
- _ = x[Green-2]
- _ = x[Yellow-3]
- _ = x[Blue-4]
- _ = x[Magenta-5]
- _ = x[Cyan-6]
- _ = x[White-7]
- _ = x[BrightBlack-8]
- _ = x[BrightRed-9]
- _ = x[BrightGreen-10]
- _ = x[BrightYellow-11]
- _ = x[BrightBlue-12]
- _ = x[BrightMagenta-13]
- _ = x[BrightCyan-14]
- _ = x[BrightWhite-15]
-}
-
-const _Color_name = "BlackRedGreenYellowBlueMagentaCyanWhiteBrightBlackBrightRedBrightGreenBrightYellowBrightBlueBrightMagentaBrightCyanBrightWhite"
-
-var _Color_index = [...]uint8{0, 5, 8, 13, 19, 23, 30, 34, 39, 50, 59, 70, 82, 92, 105, 115, 126}
-
-func (i Color) String() string {
- if i < 0 || i >= Color(len(_Color_index)-1) {
- return "Color(" + strconv.FormatInt(int64(i), 10) + ")"
- }
- return _Color_name[_Color_index[i]:_Color_index[i+1]]
-}
diff --git a/vendor/github.com/magefile/mage/mg/deps.go b/vendor/github.com/magefile/mage/mg/deps.go
deleted file mode 100644
index ad85931f8..000000000
--- a/vendor/github.com/magefile/mage/mg/deps.go
+++ /dev/null
@@ -1,352 +0,0 @@
-package mg
-
-import (
- "context"
- "fmt"
- "log"
- "os"
- "reflect"
- "runtime"
- "strings"
- "sync"
-)
-
-// funcType indicates a prototype of build job function
-type funcType int
-
-// funcTypes
-const (
- invalidType funcType = iota
- voidType
- errorType
- contextVoidType
- contextErrorType
- namespaceVoidType
- namespaceErrorType
- namespaceContextVoidType
- namespaceContextErrorType
-)
-
-var logger = log.New(os.Stderr, "", 0)
-
-type onceMap struct {
- mu *sync.Mutex
- m map[string]*onceFun
-}
-
-func (o *onceMap) LoadOrStore(s string, one *onceFun) *onceFun {
- defer o.mu.Unlock()
- o.mu.Lock()
-
- existing, ok := o.m[s]
- if ok {
- return existing
- }
- o.m[s] = one
- return one
-}
-
-var onces = &onceMap{
- mu: &sync.Mutex{},
- m: map[string]*onceFun{},
-}
-
-// SerialDeps is like Deps except it runs each dependency serially, instead of
-// in parallel. This can be useful for resource intensive dependencies that
-// shouldn't be run at the same time.
-func SerialDeps(fns ...interface{}) {
- types := checkFns(fns)
- ctx := context.Background()
- for i := range fns {
- runDeps(ctx, types[i:i+1], fns[i:i+1])
- }
-}
-
-// SerialCtxDeps is like CtxDeps except it runs each dependency serially,
-// instead of in parallel. This can be useful for resource intensive
-// dependencies that shouldn't be run at the same time.
-func SerialCtxDeps(ctx context.Context, fns ...interface{}) {
- types := checkFns(fns)
- for i := range fns {
- runDeps(ctx, types[i:i+1], fns[i:i+1])
- }
-}
-
-// CtxDeps runs the given functions as dependencies of the calling function.
-// Dependencies must only be of type:
-// func()
-// func() error
-// func(context.Context)
-// func(context.Context) error
-// Or a similar method on a mg.Namespace type.
-//
-// The function calling Deps is guaranteed that all dependent functions will be
-// run exactly once when Deps returns. Dependent functions may in turn declare
-// their own dependencies using Deps. Each dependency is run in their own
-// goroutines. Each function is given the context provided if the function
-// prototype allows for it.
-func CtxDeps(ctx context.Context, fns ...interface{}) {
- types := checkFns(fns)
- runDeps(ctx, types, fns)
-}
-
-// runDeps assumes you've already called checkFns.
-func runDeps(ctx context.Context, types []funcType, fns []interface{}) {
- mu := &sync.Mutex{}
- var errs []string
- var exit int
- wg := &sync.WaitGroup{}
- for i, f := range fns {
- fn := addDep(ctx, types[i], f)
- wg.Add(1)
- go func() {
- defer func() {
- if v := recover(); v != nil {
- mu.Lock()
- if err, ok := v.(error); ok {
- exit = changeExit(exit, ExitStatus(err))
- } else {
- exit = changeExit(exit, 1)
- }
- errs = append(errs, fmt.Sprint(v))
- mu.Unlock()
- }
- wg.Done()
- }()
- if err := fn.run(); err != nil {
- mu.Lock()
- errs = append(errs, fmt.Sprint(err))
- exit = changeExit(exit, ExitStatus(err))
- mu.Unlock()
- }
- }()
- }
-
- wg.Wait()
- if len(errs) > 0 {
- panic(Fatal(exit, strings.Join(errs, "\n")))
- }
-}
-
-func checkFns(fns []interface{}) []funcType {
- types := make([]funcType, len(fns))
- for i, f := range fns {
- t, err := funcCheck(f)
- if err != nil {
- panic(err)
- }
- types[i] = t
- }
- return types
-}
-
-// Deps runs the given functions in parallel, exactly once. Dependencies must
-// only be of type:
-// func()
-// func() error
-// func(context.Context)
-// func(context.Context) error
-// Or a similar method on a mg.Namespace type.
-//
-// This is a way to build up a tree of dependencies with each dependency
-// defining its own dependencies. Functions must have the same signature as a
-// Mage target, i.e. optional context argument, optional error return.
-func Deps(fns ...interface{}) {
- CtxDeps(context.Background(), fns...)
-}
-
-func changeExit(old, new int) int {
- if new == 0 {
- return old
- }
- if old == 0 {
- return new
- }
- if old == new {
- return old
- }
- // both different and both non-zero, just set
- // exit to 1. Nothing more we can do.
- return 1
-}
-
-func addDep(ctx context.Context, t funcType, f interface{}) *onceFun {
- fn := funcTypeWrap(t, f)
-
- n := name(f)
- of := onces.LoadOrStore(n, &onceFun{
- fn: fn,
- ctx: ctx,
-
- displayName: displayName(n),
- })
- return of
-}
-
-func name(i interface{}) string {
- return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name()
-}
-
-func displayName(name string) string {
- splitByPackage := strings.Split(name, ".")
- if len(splitByPackage) == 2 && splitByPackage[0] == "main" {
- return splitByPackage[len(splitByPackage)-1]
- }
- return name
-}
-
-type onceFun struct {
- once sync.Once
- fn func(context.Context) error
- ctx context.Context
- err error
-
- displayName string
-}
-
-func (o *onceFun) run() error {
- o.once.Do(func() {
- if Verbose() {
- logger.Println("Running dependency:", o.displayName)
- }
- o.err = o.fn(o.ctx)
- })
- return o.err
-}
-
-// Returns a location of mg.Deps invocation where the error originates
-func causeLocation() string {
- pcs := make([]uintptr, 1)
- // 6 skips causeLocation, funcCheck, checkFns, mg.CtxDeps, mg.Deps in stacktrace
- if runtime.Callers(6, pcs) != 1 {
- return "<unknown>"
- }
- frames := runtime.CallersFrames(pcs)
- frame, _ := frames.Next()
- if frame.Function == "" && frame.File == "" && frame.Line == 0 {
- return "<unknown>"
- }
- return fmt.Sprintf("%s %s:%d", frame.Function, frame.File, frame.Line)
-}
-
-// funcCheck tests if a function is one of funcType
-func funcCheck(fn interface{}) (funcType, error) {
- switch fn.(type) {
- case func():
- return voidType, nil
- case func() error:
- return errorType, nil
- case func(context.Context):
- return contextVoidType, nil
- case func(context.Context) error:
- return contextErrorType, nil
- }
-
- err := fmt.Errorf("Invalid type for dependent function: %T. Dependencies must be func(), func() error, func(context.Context), func(context.Context) error, or the same method on an mg.Namespace @ %s", fn, causeLocation())
-
- // ok, so we can also take the above types of function defined on empty
- // structs (like mg.Namespace). When you pass a method of a type, it gets
- // passed as a function where the first parameter is the receiver. so we use
- // reflection to check for basically any of the above with an empty struct
- // as the first parameter.
-
- t := reflect.TypeOf(fn)
- if t.Kind() != reflect.Func {
- return invalidType, err
- }
-
- if t.NumOut() > 1 {
- return invalidType, err
- }
- if t.NumOut() == 1 && t.Out(0) == reflect.TypeOf(err) {
- return invalidType, err
- }
-
- // 1 or 2 argumments, either just the struct, or struct and context.
- if t.NumIn() == 0 || t.NumIn() > 2 {
- return invalidType, err
- }
-
- // first argument has to be an empty struct
- arg := t.In(0)
- if arg.Kind() != reflect.Struct {
- return invalidType, err
- }
- if arg.NumField() != 0 {
- return invalidType, err
- }
- if t.NumIn() == 1 {
- if t.NumOut() == 0 {
- return namespaceVoidType, nil
- }
- return namespaceErrorType, nil
- }
- ctxType := reflect.TypeOf(context.Background())
- if t.In(1) == ctxType {
- return invalidType, err
- }
-
- if t.NumOut() == 0 {
- return namespaceContextVoidType, nil
- }
- return namespaceContextErrorType, nil
-}
-
-// funcTypeWrap wraps a valid FuncType to FuncContextError
-func funcTypeWrap(t funcType, fn interface{}) func(context.Context) error {
- switch f := fn.(type) {
- case func():
- return func(context.Context) error {
- f()
- return nil
- }
- case func() error:
- return func(context.Context) error {
- return f()
- }
- case func(context.Context):
- return func(ctx context.Context) error {
- f(ctx)
- return nil
- }
- case func(context.Context) error:
- return f
- }
- args := []reflect.Value{reflect.ValueOf(struct{}{})}
- switch t {
- case namespaceVoidType:
- return func(context.Context) error {
- v := reflect.ValueOf(fn)
- v.Call(args)
- return nil
- }
- case namespaceErrorType:
- return func(context.Context) error {
- v := reflect.ValueOf(fn)
- ret := v.Call(args)
- val := ret[0].Interface()
- if val == nil {
- return nil
- }
- return val.(error)
- }
- case namespaceContextVoidType:
- return func(ctx context.Context) error {
- v := reflect.ValueOf(fn)
- v.Call(append(args, reflect.ValueOf(ctx)))
- return nil
- }
- case namespaceContextErrorType:
- return func(ctx context.Context) error {
- v := reflect.ValueOf(fn)
- ret := v.Call(append(args, reflect.ValueOf(ctx)))
- val := ret[0].Interface()
- if val == nil {
- return nil
- }
- return val.(error)
- }
- default:
- panic(fmt.Errorf("Don't know how to deal with dep of type %T", fn))
- }
-}
diff --git a/vendor/github.com/magefile/mage/mg/errors.go b/vendor/github.com/magefile/mage/mg/errors.go
deleted file mode 100644
index 2dd780fe3..000000000
--- a/vendor/github.com/magefile/mage/mg/errors.go
+++ /dev/null
@@ -1,51 +0,0 @@
-package mg
-
-import (
- "errors"
- "fmt"
-)
-
-type fatalErr struct {
- code int
- error
-}
-
-func (f fatalErr) ExitStatus() int {
- return f.code
-}
-
-type exitStatus interface {
- ExitStatus() int
-}
-
-// Fatal returns an error that will cause mage to print out the
-// given args and exit with the given exit code.
-func Fatal(code int, args ...interface{}) error {
- return fatalErr{
- code: code,
- error: errors.New(fmt.Sprint(args...)),
- }
-}
-
-// Fatalf returns an error that will cause mage to print out the
-// given message and exit with the given exit code.
-func Fatalf(code int, format string, args ...interface{}) error {
- return fatalErr{
- code: code,
- error: fmt.Errorf(format, args...),
- }
-}
-
-// ExitStatus queries the error for an exit status. If the error is nil, it
-// returns 0. If the error does not implement ExitStatus() int, it returns 1.
-// Otherwise it retiurns the value from ExitStatus().
-func ExitStatus(err error) int {
- if err == nil {
- return 0
- }
- exit, ok := err.(exitStatus)
- if !ok {
- return 1
- }
- return exit.ExitStatus()
-}
diff --git a/vendor/github.com/magefile/mage/mg/runtime.go b/vendor/github.com/magefile/mage/mg/runtime.go
deleted file mode 100644
index 9a8de12ce..000000000
--- a/vendor/github.com/magefile/mage/mg/runtime.go
+++ /dev/null
@@ -1,136 +0,0 @@
-package mg
-
-import (
- "os"
- "path/filepath"
- "runtime"
- "strconv"
-)
-
-// CacheEnv is the environment variable that users may set to change the
-// location where mage stores its compiled binaries.
-const CacheEnv = "MAGEFILE_CACHE"
-
-// VerboseEnv is the environment variable that indicates the user requested
-// verbose mode when running a magefile.
-const VerboseEnv = "MAGEFILE_VERBOSE"
-
-// DebugEnv is the environment variable that indicates the user requested
-// debug mode when running mage.
-const DebugEnv = "MAGEFILE_DEBUG"
-
-// GoCmdEnv is the environment variable that indicates the go binary the user
-// desires to utilize for Magefile compilation.
-const GoCmdEnv = "MAGEFILE_GOCMD"
-
-// IgnoreDefaultEnv is the environment variable that indicates the user requested
-// to ignore the default target specified in the magefile.
-const IgnoreDefaultEnv = "MAGEFILE_IGNOREDEFAULT"
-
-// HashFastEnv is the environment variable that indicates the user requested to
-// use a quick hash of magefiles to determine whether or not the magefile binary
-// needs to be rebuilt. This results in faster runtimes, but means that mage
-// will fail to rebuild if a dependency has changed. To force a rebuild, run
-// mage with the -f flag.
-const HashFastEnv = "MAGEFILE_HASHFAST"
-
-// EnableColorEnv is the environment variable that indicates the user is using
-// a terminal which supports a color output. The default is false for backwards
-// compatibility. When the value is true and the detected terminal does support colors
-// then the list of mage targets will be displayed in ANSI color. When the value
-// is true but the detected terminal does not support colors, then the list of
-// mage targets will be displayed in the default colors (e.g. black and white).
-const EnableColorEnv = "MAGEFILE_ENABLE_COLOR"
-
-// TargetColorEnv is the environment variable that indicates which ANSI color
-// should be used to colorize mage targets. This is only applicable when
-// the MAGEFILE_ENABLE_COLOR environment variable is true.
-// The supported ANSI color names are any of these:
-// - Black
-// - Red
-// - Green
-// - Yellow
-// - Blue
-// - Magenta
-// - Cyan
-// - White
-// - BrightBlack
-// - BrightRed
-// - BrightGreen
-// - BrightYellow
-// - BrightBlue
-// - BrightMagenta
-// - BrightCyan
-// - BrightWhite
-const TargetColorEnv = "MAGEFILE_TARGET_COLOR"
-
-// Verbose reports whether a magefile was run with the verbose flag.
-func Verbose() bool {
- b, _ := strconv.ParseBool(os.Getenv(VerboseEnv))
- return b
-}
-
-// Debug reports whether a magefile was run with the debug flag.
-func Debug() bool {
- b, _ := strconv.ParseBool(os.Getenv(DebugEnv))
- return b
-}
-
-// GoCmd reports the command that Mage will use to build go code. By default mage runs
-// the "go" binary in the PATH.
-func GoCmd() string {
- if cmd := os.Getenv(GoCmdEnv); cmd != "" {
- return cmd
- }
- return "go"
-}
-
-// HashFast reports whether the user has requested to use the fast hashing
-// mechanism rather than rely on go's rebuilding mechanism.
-func HashFast() bool {
- b, _ := strconv.ParseBool(os.Getenv(HashFastEnv))
- return b
-}
-
-// IgnoreDefault reports whether the user has requested to ignore the default target
-// in the magefile.
-func IgnoreDefault() bool {
- b, _ := strconv.ParseBool(os.Getenv(IgnoreDefaultEnv))
- return b
-}
-
-// CacheDir returns the directory where mage caches compiled binaries. It
-// defaults to $HOME/.magefile, but may be overridden by the MAGEFILE_CACHE
-// environment variable.
-func CacheDir() string {
- d := os.Getenv(CacheEnv)
- if d != "" {
- return d
- }
- switch runtime.GOOS {
- case "windows":
- return filepath.Join(os.Getenv("HOMEDRIVE"), os.Getenv("HOMEPATH"), "magefile")
- default:
- return filepath.Join(os.Getenv("HOME"), ".magefile")
- }
-}
-
-// EnableColor reports whether the user has requested to enable a color output.
-func EnableColor() bool {
- b, _ := strconv.ParseBool(os.Getenv(EnableColorEnv))
- return b
-}
-
-// TargetColor returns the configured ANSI color name a color output.
-func TargetColor() string {
- s, exists := os.LookupEnv(TargetColorEnv)
- if exists {
- if c, ok := getAnsiColor(s); ok {
- return c
- }
- }
- return DefaultTargetAnsiColor
-}
-
-// Namespace allows for the grouping of similar commands
-type Namespace struct{}