package cli import ( "fmt" "os" "github.com/alyraffauf/tg/internal/app" "github.com/spf13/cobra" "github.com/spf13/cobra/doc" ) // manCmd is hidden from `tg --help`: it is a build-time tool the Nix // derivation invokes to generate man pages, not a user-facing command (cf. // `gh`, which produces man pages via its Makefile rather than a visible // subcommand). func newManCommand(_ *app.Service) *cobra.Command { var markdown bool cmd := &cobra.Command{ Use: "man [directory]", Short: "Generate man pages", Args: cobra.ExactArgs(1), Hidden: true, RunE: func(cmd *cobra.Command, args []string) error { dir := args[0] if err := os.MkdirAll(dir, 0o755); err != nil { return fmt.Errorf("create man page directory: %w", err) } if markdown { return doc.GenMarkdownTree(cmd.Root(), dir) } header := &doc.GenManHeader{ Title: "tg", Section: "1", Source: "tg " + version, } return doc.GenManTree(cmd.Root(), header, dir) }, } cmd.Flags().BoolVar(&markdown, "markdown", false, "Generate Markdown instead of man pages") return cmd }