Files
threshold/internal/cmd/wrapper/deprecation_wrapper.go
T
Johan Brandhorst-SatzkornandRobin Beck e64443c66f Rename daemon CLI command to cache (#4808)
* 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>
2024-05-22 11:11:48 -07:00

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)
}