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  }