]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
commands: Add missing gen docshelper command
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 22 May 2023 15:35:21 +0000 (17:35 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 22 May 2023 16:54:34 +0000 (18:54 +0200)
Updates #10953

commands/gen.go

index fde5ae3bcbb753c1784cac70e42a61a12d87e5bc..1f8109e01c771eceb4dcab011ba72c73a65bc20a 100644 (file)
@@ -15,6 +15,7 @@ package commands
 
 import (
        "context"
+       "encoding/json"
        "fmt"
        "os"
        "path"
@@ -26,6 +27,7 @@ import (
        "github.com/alecthomas/chroma/v2/styles"
        "github.com/bep/simplecobra"
        "github.com/gohugoio/hugo/common/hugo"
+       "github.com/gohugoio/hugo/docshelper"
        "github.com/gohugoio/hugo/helpers"
        "github.com/gohugoio/hugo/hugofs"
        "github.com/spf13/cobra"
@@ -174,11 +176,47 @@ url: %s
 
        }
 
+       var docsHelperTarget string
+
+       newDocsHelper := func() simplecobra.Commander {
+               return &simpleCommand{
+                       name:  "docshelper",
+                       short: "Generate some data files for the Hugo docs.",
+
+                       run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error {
+                               r.Println("Generate docs data to", docsHelperTarget)
+
+                               targetFile := filepath.Join(docsHelperTarget, "docs.json")
+
+                               f, err := os.Create(targetFile)
+                               if err != nil {
+                                       return err
+                               }
+                               defer f.Close()
+
+                               enc := json.NewEncoder(f)
+                               enc.SetIndent("", "  ")
+
+                               if err := enc.Encode(docshelper.GetDocProvider()); err != nil {
+                                       return err
+                               }
+
+                               r.Println("Done!")
+                               return nil
+                       },
+                       withc: func(cmd *cobra.Command) {
+                               cmd.Hidden = true
+                               cmd.PersistentFlags().StringVarP(&docsHelperTarget, "dir", "", "docs/data", "data dir")
+                       },
+               }
+       }
+
        return &genCommand{
                commands: []simplecobra.Commander{
                        newChromaStyles(),
                        newGen(),
                        newMan(),
+                       newDocsHelper(),
                },
        }