Add command to generate Fission CLI docs (#2247)

* Add command to generate Fission CLI docs
* Minor fixes identified by LanguageTool

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
Sanket Sudake
2021-11-02 17:09:31 +05:30
committed by GitHub
parent 0c8a0c43c1
commit f09d399c17
5 changed files with 69 additions and 3 deletions
+60
View File
@@ -0,0 +1,60 @@
package main
import (
"fmt"
"log"
"path"
"path/filepath"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/cobra/doc"
"github.com/fission/fission/cmd/fission-cli/app"
)
const fmTemplate = `---
title: %s
slug: %s
url: %s
---
`
const baseURL = "/docs/fission-cli/"
var filePrepender = func(filename string) string {
name := filepath.Base(filename)
base := strings.TrimSuffix(name, path.Ext(name))
url := baseURL + strings.ToLower(base) + "/"
return fmt.Sprintf(fmTemplate, strings.Replace(base, "_", " ", -1), base, url)
}
var linkHandler = func(name string) string {
base := strings.TrimSuffix(name, path.Ext(name))
return baseURL + strings.ToLower(base) + "/"
}
func main() {
var outdir string
var rootCmd = &cobra.Command{
Use: "fission-cli-docs",
Short: "Generate docs for fission-cli",
Long: "Generate docs for fission-cli",
Run: func(cmd *cobra.Command, args []string) {
log.Printf("Generting docs in directory %s", outdir)
fissionApp := app.App()
fissionApp.DisableAutoGenTag = true
fissionApp.Short = "Serverless framework for Kubernetes"
err := doc.GenMarkdownTreeCustom(fissionApp, outdir, filePrepender, linkHandler)
if err != nil {
log.Fatal(err)
}
},
}
rootCmd.Flags().StringVarP(&outdir, "outdir", "o", "/tmp/cli-docs", "Output directory")
err := rootCmd.Execute()
if err != nil {
log.Fatal(err)
}
}