diff options
| author | tjp <tjp@ctrl-c.club> | 2024-01-23 22:42:18 -0700 |
|---|---|---|
| committer | tjp <tjp@ctrl-c.club> | 2024-01-23 22:42:18 -0700 |
| commit | 865c6dc23099e129cb3ba9709b2926734144e605 (patch) | |
| tree | 6824a2de82e842ea79554b581ceb0db328235c46 /actions.go | |
| parent | dd2a06c1e1391fe6242015330b7c61fa37fd67cc (diff) | |
Printer abstraction
Diffstat (limited to 'actions.go')
| -rw-r--r-- | actions.go | 37 |
1 files changed, 7 insertions, 30 deletions
@@ -559,43 +559,20 @@ func parseURL(str string, state *BrowserState, defaultScheme string) (*url.URL, } func print(state *BrowserState) error { - if state.Quiet { - return nil - } - - defer func() { state.Modal = nil }() - - if state.Body == nil && state.Modal == nil { - return ErrMustBeOnAPage - } - out := []byte(state.Formatted) if state.Modal != nil { - out = state.Modal + defer func() { state.Modal = nil }() + return state.Printer.PrintModal(state, state.Modal) } - if state.Modal != nil || state.Pager == "never" { - _, err := os.Stdout.Write(out) - return err + if state.Body == nil { + return ErrMustBeOnAPage } - lessarg := []string{} - switch state.Pager { - case "auto": - lessarg = []string{"-F"} - fallthrough - case "always": - less, err := exec.LookPath("less") - if err != nil { - return err - } - cmd := exec.Command(less, lessarg...) - cmd.Stdin = bytes.NewBuffer(out) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - return cmd.Run() + if state.Quiet { + return nil } - return errors.New("invalid 'pager' value in configuration") + return state.Printer.PrintPage(state, state.Formatted) } func Print(state *BrowserState) error { |
