github.com/cnboonhan/delve@v0.0.0-20230908061759-363f2388c2fb/_scripts/gen-usage-docs.go (about) 1 //go:build ignore 2 // +build ignore 3 4 package main 5 6 import ( 7 "fmt" 8 "log" 9 "os" 10 "path/filepath" 11 12 "github.com/go-delve/delve/cmd/dlv/cmds" 13 "github.com/go-delve/delve/cmd/dlv/cmds/helphelpers" 14 "github.com/spf13/cobra/doc" 15 ) 16 17 const defaultUsageDir = "./Documentation/usage" 18 19 func main() { 20 usageDir := defaultUsageDir 21 if len(os.Args) > 1 { 22 usageDir = os.Args[1] 23 } 24 root := cmds.New(true) 25 26 cmdnames := []string{} 27 for _, subcmd := range root.Commands() { 28 cmdnames = append(cmdnames, subcmd.Name()) 29 } 30 helphelpers.Prepare(root) 31 doc.GenMarkdownTree(root, usageDir) 32 root = nil 33 // GenMarkdownTree ignores additional help topic commands, so we have to do this manually 34 for _, cmdname := range cmdnames { 35 cmd, _, _ := cmds.New(true).Find([]string{cmdname}) 36 helphelpers.Prepare(cmd) 37 doc.GenMarkdownTree(cmd, usageDir) 38 } 39 fh, err := os.OpenFile(filepath.Join(usageDir, "dlv.md"), os.O_APPEND|os.O_WRONLY, 0) 40 if err != nil { 41 log.Fatalf("appending to dlv.md: %v", err) 42 } 43 defer fh.Close() 44 fmt.Fprintln(fh, "* [dlv log](dlv_log.md)\t - Help about logging flags") 45 fmt.Fprintln(fh, "* [dlv backend](dlv_backend.md)\t - Help about the `--backend` flag") 46 }