From 3d46b9546e1ccf131ce4dbcbfc12f6e37fa301ea Mon Sep 17 00:00:00 2001 From: ewy Date: Mon, 1 Jun 2026 19:37:34 +0200 Subject: default to manpage view for help --- man/manview/manview.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 man/manview/manview.go (limited to 'man/manview/manview.go') diff --git a/man/manview/manview.go b/man/manview/manview.go new file mode 100644 index 0000000..777f2cd --- /dev/null +++ b/man/manview/manview.go @@ -0,0 +1,36 @@ +package manview + +import ( + "embed" + _ "embed" + "github.com/ewy1/pik/spool" + "os" + "os/exec" + "strings" + "text/template" +) + +//go:embed templates +var pageTemplates embed.FS + +var page = template.Must(template.ParseFS(pageTemplates, "templates/*")) + +func View(fallback string) error { + man, manErr := exec.LookPath("man") + if manErr != nil { + _, err := spool.Print("%v\n", fallback) + return err + } else { + t := &strings.Builder{} + err := page.Execute(t, NewData()) + if err != nil { + return err + } + reader := strings.NewReader(t.String()) + cmd := exec.Command(man, "-l", "-") + cmd.Stdin = reader + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + return cmd.Run() + } +} -- cgit v1.3.1