Files
argo-cd/tools/cmd-docs/main.go
2025-03-20 15:54:58 +02:00

64 lines
2.2 KiB
Go

package main
import (
"fmt"
"log"
"os"
"path/filepath"
"strings"
"github.com/spf13/cobra/doc"
controller "github.com/argoproj/argo-cd/v3/cmd/argocd-application-controller/commands"
argocdappsetcontroller "github.com/argoproj/argo-cd/v3/cmd/argocd-applicationset-controller/commands"
argocddex "github.com/argoproj/argo-cd/v3/cmd/argocd-dex/commands"
reposerver "github.com/argoproj/argo-cd/v3/cmd/argocd-repo-server/commands"
argocdserver "github.com/argoproj/argo-cd/v3/cmd/argocd-server/commands"
argocdcli "github.com/argoproj/argo-cd/v3/cmd/argocd/commands"
)
func main() {
// set HOME env var so that default values involve user's home directory do not depend on the running user.
os.Setenv("HOME", "/home/user")
os.Setenv("XDG_CONFIG_HOME", "/home/user/.config")
identity := func(s string) string { return s }
headerPrepender := func(filename string) string {
// The default header looks like `Argocd app get`. The leading capital letter is off-putting.
// This header overrides the default. It's better visually and for search results.
filename = filepath.Base(filename)
filename = filename[:len(filename)-3] // Drop the '.md'
return fmt.Sprintf("# `%s` Command Reference\n\n", strings.ReplaceAll(filename, "_", " "))
}
err := doc.GenMarkdownTreeCustom(argocdcli.NewCommand(), "./docs/user-guide/commands", headerPrepender, identity)
if err != nil {
log.Fatal(err)
}
err = doc.GenMarkdownTreeCustom(argocdserver.NewCommand(), "./docs/operator-manual/server-commands", headerPrepender, identity)
if err != nil {
log.Fatal(err)
}
err = doc.GenMarkdownTreeCustom(controller.NewCommand(), "./docs/operator-manual/server-commands", headerPrepender, identity)
if err != nil {
log.Fatal(err)
}
err = doc.GenMarkdownTreeCustom(reposerver.NewCommand(), "./docs/operator-manual/server-commands", headerPrepender, identity)
if err != nil {
log.Fatal(err)
}
err = doc.GenMarkdownTreeCustom(argocddex.NewCommand(), "./docs/operator-manual/server-commands", headerPrepender, identity)
if err != nil {
log.Fatal(err)
}
err = doc.GenMarkdownTreeCustom(argocdappsetcontroller.NewCommand(), "./docs/operator-manual/server-commands", headerPrepender, identity)
if err != nil {
log.Fatal(err)
}
}