diff --git a/clidocstool.go b/clidocstool.go index 302fc59..7f1b8a0 100644 --- a/clidocstool.go +++ b/clidocstool.go @@ -97,3 +97,19 @@ func copyFile(src string, dst string) error { _, err = io.Copy(df, sf) return err } + +func getAliases(cmd *cobra.Command) []string { + if len(cmd.Aliases) == 0 { + return cmd.Aliases + } + + var parentPath string + if cmd.HasParent() { + parentPath = cmd.Parent().CommandPath() + " " + } + aliases := []string{cmd.CommandPath()} + for _, a := range cmd.Aliases { + aliases = append(aliases, parentPath+a) + } + return aliases +} diff --git a/clidocstool_md.go b/clidocstool_md.go index 55cb38d..24efee4 100644 --- a/clidocstool_md.go +++ b/clidocstool_md.go @@ -155,11 +155,9 @@ func mdCmdOutput(cmd *cobra.Command, old string) (string, error) { fmt.Fprintf(b, "%s\n\n", desc) } - if len(cmd.Aliases) != 0 { - fmt.Fprintf(b, "### Aliases\n\n`%s`", cmd.Name()) - for _, a := range cmd.Aliases { - fmt.Fprintf(b, ", `%s`", a) - } + if aliases := getAliases(cmd); len(aliases) != 0 { + fmt.Fprint(b, "### Aliases\n\n") + fmt.Fprint(b, "`"+strings.Join(aliases, "`, `")+"`") fmt.Fprint(b, "\n\n") } diff --git a/clidocstool_yaml.go b/clidocstool_yaml.go index dfccfca..8175671 100644 --- a/clidocstool_yaml.go +++ b/clidocstool_yaml.go @@ -150,7 +150,7 @@ func (c *Client) genYamlCustom(cmd *cobra.Command, w io.Writer) error { cliDoc := cmdDoc{ Name: cmd.CommandPath(), - Aliases: strings.Join(cmd.Aliases, ", "), + Aliases: strings.Join(getAliases(cmd), ", "), Short: forceMultiLine(cmd.Short, shortMaxWidth), Long: forceMultiLine(cmd.Long, longMaxWidth), Example: cmd.Example, diff --git a/fixtures/buildx_build.md b/fixtures/buildx_build.md index 9560363..7248112 100644 --- a/fixtures/buildx_build.md +++ b/fixtures/buildx_build.md @@ -5,7 +5,7 @@ Start a build ### Aliases -`build`, `b` +`docker buildx build`, `docker buildx b` ### Options diff --git a/fixtures/docker_buildx_build.yaml b/fixtures/docker_buildx_build.yaml index 68cc04a..049c831 100644 --- a/fixtures/docker_buildx_build.yaml +++ b/fixtures/docker_buildx_build.yaml @@ -1,5 +1,5 @@ command: docker buildx build -aliases: b +aliases: docker buildx build, docker buildx b short: Start a build long: Start a build usage: docker buildx build [OPTIONS] PATH | URL | -