diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2024-05-20 19:33:46 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2024-05-21 01:06:10 +0900 |
| commit | 076b3d0a9af7e69c8e5232d49cfeeadcfd45e9ef (patch) | |
| tree | af30be146de4df1b513b4145fa34ee3be5e6bbdf /main.go | |
| parent | 7b0c9e04d381090ba2004f52fa7127cf2f4e3df4 (diff) | |
| download | fzf-076b3d0a9af7e69c8e5232d49cfeeadcfd45e9ef.tar.gz | |
Embed man page in the binary and show it on 'fzf --man'
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -4,6 +4,7 @@ import ( _ "embed" "fmt" "os" + "os/exec" "strings" fzf "github.com/junegunn/fzf/src" @@ -28,6 +29,9 @@ var zshCompletion []byte //go:embed shell/key-bindings.fish var fishKeyBindings []byte +//go:embed man/man1/fzf.1 +var manPage []byte + func printScript(label string, content []byte) { fmt.Println("### " + label + " ###") fmt.Println(strings.TrimSpace(string(content))) @@ -76,6 +80,20 @@ func main() { } return } + if options.Man { + file := fzf.WriteTemporaryFile([]string{string(manPage)}, "\n") + if len(file) == 0 { + fmt.Print(string(manPage)) + return + } + defer os.Remove(file) + cmd := exec.Command("man", file) + cmd.Stdout = os.Stdout + if err := cmd.Run(); err != nil { + fmt.Print(string(manPage)) + } + return + } code, err := fzf.Run(options) exit(code, err) |
