Files
threshold/internal/cmd/wrapper/deprecation_wrapper.go
T
429247f407 [COMPLIANCE] Update Copyright Headers (#6282)
* [COMPLIANCE] Update Copyright and License Headers

* chore: make gen to generate files with copyright headers

* chore: update missed copyright headers

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Justin Nguyen <justin.nguyen@hashicorp.com>
2026-01-28 11:05:07 -06:00

42 lines
1001 B
Go

// Copyright IBM Corp. 2020, 2025
// 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)
}