diff --git a/doc/gen_docs.go b/doc/gen_docs.go index 83997488f67c20403d5077a1cedbc2a77170e2c2..8bb596fe4b5e037ae03923a811404dead8817b26 100644 --- a/doc/gen_docs.go +++ b/doc/gen_docs.go @@ -5,8 +5,10 @@ import ( "os" "path" "path/filepath" + "sync" "time" + "github.com/spf13/cobra" "github.com/spf13/cobra/doc" "github.com/MichaelMure/git-bug/commands" @@ -15,34 +17,34 @@ import ( func main() { fmt.Println("Generating documentation ...") - tasks := map[string]func() error{ + tasks := map[string]func(*cobra.Command) error{ "ManPage": genManPage, "Markdown": genMarkdown, } - // Due to concurrency issues in cobra, the following can't be concurrent :( - - // var wg sync.WaitGroup + var wg sync.WaitGroup for name, f := range tasks { - // wg.Add(1) - // go func(name string, f func() error) { - // defer wg.Done() - err := f() - if err != nil { - fmt.Printf(" - %s: %v\n", name, err) - return - } - fmt.Printf(" - %s: ok\n", name) - // }(name, f) + wg.Add(1) + go func(name string, f func(*cobra.Command) error) { + defer wg.Done() + root := commands.NewRootCommand() + err := f(root) + if err != nil { + fmt.Printf(" - %s: %v\n", name, err) + return + } + fmt.Printf(" - %s: ok\n", name) + }(name, f) } - // wg.Wait() + wg.Wait() } -func genManPage() error { +func genManPage(root *cobra.Command) error { cwd, _ := os.Getwd() dir := path.Join(cwd, "doc", "man") + // fixed date to avoid having to commit each month date := time.Date(2019, 4, 1, 12, 0, 0, 0, time.UTC) header := &doc.GenManHeader{ @@ -62,10 +64,10 @@ func genManPage() error { } } - return doc.GenManTree(commands.NewRootCommand(), header, dir) + return doc.GenManTree(root, header, dir) } -func genMarkdown() error { +func genMarkdown(root *cobra.Command) error { cwd, _ := os.Getwd() dir := path.Join(cwd, "doc", "md") @@ -79,5 +81,5 @@ func genMarkdown() error { } } - return doc.GenMarkdownTree(commands.NewRootCommand(), dir) + return doc.GenMarkdownTree(root, dir) } diff --git a/misc/gen_completion.go b/misc/gen_completion.go index 0bc546f7d14049206dcdc1dca20768cbc1e95418..af00fa645767af49b6f7978d5dc16302e0f9dd0e 100644 --- a/misc/gen_completion.go +++ b/misc/gen_completion.go @@ -14,8 +14,6 @@ import ( func main() { fmt.Println("Generating completion files ...") - root := commands.NewRootCommand() - tasks := map[string]func(*cobra.Command) error{ "Bash": genBash, "Fish": genFish, @@ -28,6 +26,7 @@ func main() { wg.Add(1) go func(name string, f func(*cobra.Command) error) { defer wg.Done() + root := commands.NewRootCommand() err := f(root) if err != nil { fmt.Printf(" - %s: %v\n", name, err)