summaryrefslogtreecommitdiff
path: root/actions.go
diff options
context:
space:
mode:
Diffstat (limited to 'actions.go')
-rw-r--r--actions.go37
1 files changed, 7 insertions, 30 deletions
diff --git a/actions.go b/actions.go
index c11e677..c80445b 100644
--- a/actions.go
+++ b/actions.go
@@ -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 {