summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
Diffstat (limited to 'man')
-rw-r--r--man/man_test.go2
-rw-r--r--man/manview/data.go (renamed from man/data.go)2
-rw-r--r--man/manview/help.txt (renamed from man/help.txt)0
-rw-r--r--man/manview/manview.go36
-rw-r--r--man/manview/templates/pik.1.man.tmpl (renamed from man/templates/pik.1.man.tmpl)0
-rw-r--r--man/manview/version.txt (renamed from man/version.txt)0
-rw-r--r--man/view.go (renamed from man/man.go)7
7 files changed, 42 insertions, 5 deletions
diff --git a/man/man_test.go b/man/man_test.go
index 4b48c0f..7643677 100644
--- a/man/man_test.go
+++ b/man/man_test.go
@@ -14,5 +14,5 @@ func TestMan(t *testing.T) {
err := pflag.Set(manFlagName, d)
assert.NoError(t, err)
assert.NotPanics(t, main)
- assert.FileExists(t, filepath.Join(d, "pik.1.man"))
+ assert.FileExists(t, filepath.Join(d, "pik.1"))
}
diff --git a/man/data.go b/man/manview/data.go
index 322da8f..7e42fcc 100644
--- a/man/data.go
+++ b/man/manview/data.go
@@ -1,4 +1,4 @@
-package main
+package manview
import (
_ "embed"
diff --git a/man/help.txt b/man/manview/help.txt
index 8c7e943..8c7e943 100644
--- a/man/help.txt
+++ b/man/manview/help.txt
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()
+ }
+}
diff --git a/man/templates/pik.1.man.tmpl b/man/manview/templates/pik.1.man.tmpl
index 53f1cfd..53f1cfd 100644
--- a/man/templates/pik.1.man.tmpl
+++ b/man/manview/templates/pik.1.man.tmpl
diff --git a/man/version.txt b/man/manview/version.txt
index 3b2e7a0..3b2e7a0 100644
--- a/man/version.txt
+++ b/man/manview/version.txt
diff --git a/man/man.go b/man/view.go
index 49018ed..bb4aac4 100644
--- a/man/man.go
+++ b/man/view.go
@@ -2,6 +2,7 @@ package main
import (
"embed"
+ "github.com/ewy1/pik/man/manview"
"github.com/ewy1/pik/spool"
"github.com/spf13/pflag"
"os"
@@ -10,7 +11,7 @@ import (
"text/template"
)
-//go:embed templates
+//go:embed manview/templates
var templates embed.FS
var ManOutput = pflag.String(manFlagName, "out", "directory to write man pages to (gets created)")
@@ -22,7 +23,7 @@ const templateExtension = ".tmpl"
func main() {
pflag.Parse()
- tmpl, err := template.ParseFS(templates, filepath.Join(templateDir, "*"))
+ tmpl, err := template.ParseFS(templates, "*/*/*.tmpl")
if err != nil {
_, _ = spool.Panic(spool.ManFailure, "%v\n", err)
return
@@ -31,7 +32,7 @@ func main() {
if err != nil {
_, _ = spool.Panic(spool.ManFailure, "%v\n", err)
}
- d := NewData()
+ d := manview.NewData()
for _, t := range tmpl.Templates() {
if !strings.HasSuffix(t.Name(), manExtension+templateExtension) {
continue