* internal/cmd/wrapper: add deprecation wrapper The deprecation wrapper can be used to display a warning to callers when a command is deprecated. * all: rename daemon to cache Rename the boundary daemon command to boundary cache. This avoids confusion with future client/daemons. * changes daemon to cache in nav --------- Co-authored-by: Robin Beck <stellarsquall@protonmail.ch>
42 lines
1000 B
Go
42 lines
1000 B
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package wrapper
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/mitchellh/cli"
|
|
)
|
|
|
|
// DeprecationWrapper can be used to mark a command as deprecated.
|
|
type DeprecationWrapper struct {
|
|
WrappableCommand
|
|
old string
|
|
new string
|
|
}
|
|
|
|
// WrapForDeprecation returns a cli.CommandFactory that will print a deprecation warning when invoked.
|
|
func WrapForDeprecation(c func() WrappableCommand, old, new string) cli.CommandFactory {
|
|
return func() (cli.Command, error) {
|
|
return &DeprecationWrapper{
|
|
WrappableCommand: c(),
|
|
old: old,
|
|
new: new,
|
|
}, nil
|
|
}
|
|
}
|
|
|
|
// Run prints a deprecation warning and then runs the wrapped command.
|
|
func (w *DeprecationWrapper) Run(args []string) int {
|
|
w.WrappableCommand.BaseCommand().UI.Warn(
|
|
fmt.Sprintf(
|
|
"The '%s' command is deprecated and will be removed in a future release. Please use the '%s' command instead.",
|
|
w.old,
|
|
w.new,
|
|
),
|
|
)
|
|
|
|
return w.WrappableCommand.Run(args)
|
|
}
|