Adding an alias
As your start to develop your tool, there may be cases where you want to alias
a given subcommand. This is very easy to do, as there is an Alias
key in the cobra.Command
struct. Let's say that total
is an alias of sum
, such that a user can call math total
and get the same logic.
var sumCmd = &cobra.Command{
Use: "sum",
Aliases: []string{"total"}, // total!
// ... nothing else changed
}
Now run the command with total
instead of sum
, and see the same logic applied.
# go build -o math . && ./math total 1 2 3
6
This isn't a perfect user experience. You'll notice that total
is not shown in the subcommand list:
./math -h
Execute fun math functions
Usage:
math [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
sum A brief description of your command
Flags:
-h, --help help for math
-t, --toggle Help message for toggle
Use "math [command] --help" for more information about a command.
It is shown in the help output for sum
, however:
./math sum -h
Given an arbitrary number of integer arguments,
this will return the sum of all values.
Usage:
math sum [flags]
Aliases:
sum, total
Flags:
-h, --help help for sum
To that end, aliases are mostly helpful in cases where you have shorthand names
for common functions. An example might be cp
for copy
, mv
for move
, and
rm
for remove
.