我有一个带有我想重命名的标志名称的 CLI,但我也想这样做,以便此更改向后兼容并且使用旧标志名称仍然有效,如下所示:
# New flag name
root subcommand --no-color
# Old flag name still works
root subcommand --nocolour
我最初的想法是将标志名称别名为新名称,如此处所述。这种方法确实将标志名称更改为新名称,但它不会这样做,因此您也可以使用标志的旧名称。
我已经采取了一种方法来解决这个问题,方法是定义另一个具有相同属性但名称不同的标志,并将速记移动到新标志,如下所示:
// Old flag name
cmd.PersistentFlags().BoolP(
"nocolour", "", false,
"disable colouring (default: false)")
// New flag name
cmd.PersistentFlags().BoolP(
"no-color", "C", false,
"disable coloring (default: false)")
然后我将旧名称标志标记为隐藏:
cmd.PersistentFlags().MarkHidden("nocolour")
我想知道是否有一种方法可以完成我上面所做的事情而不必定义和支持两个标志?