summaryrefslogtreecommitdiff
path: root/actions.go
diff options
context:
space:
mode:
authortjp <tjp@ctrl-c.club>2024-01-03 18:52:18 -0700
committertjp <tjp@ctrl-c.club>2024-01-03 18:52:18 -0700
commitd2b94e4b874aa2639bb22eb88494cdda73d40f22 (patch)
tree80b8193e878038b5ade592e25bd42d0aba07f8a3 /actions.go
parent859f74231f2b48d2dcf6a29682e7651b504fda12 (diff)
help command, quiet mode, and s/set/select
Diffstat (limited to 'actions.go')
-rw-r--r--actions.go58
1 files changed, 20 insertions, 38 deletions
diff --git a/actions.go b/actions.go
index d9a5d06..afb8289 100644
--- a/actions.go
+++ b/actions.go
@@ -11,7 +11,6 @@ import (
"path/filepath"
"strconv"
"strings"
- "sync"
"syscall"
"tildegit.org/tjp/sliderule"
@@ -87,7 +86,7 @@ func Reload(state *BrowserState, conf *Config) error {
return err
}
- return Print(state)
+ return print(state)
}
func back(state *BrowserState) error {
@@ -104,8 +103,7 @@ func Back(state *BrowserState) error {
return err
}
- _, _ = fmt.Fprintf(os.Stdout, "Back: %s\n", state.Url.String())
- return Print(state)
+ return print(state)
}
func Forward(state *BrowserState) error {
@@ -115,9 +113,7 @@ func Forward(state *BrowserState) error {
state.History = state.Forward
state.Modal = nil
- _, _ = fmt.Fprintf(os.Stdout, "Forward: %s\n", state.Url.String())
-
- return Print(state)
+ return print(state)
}
func Next(state *BrowserState, conf *Config) error {
@@ -136,8 +132,6 @@ func Next(state *BrowserState, conf *Config) error {
u := state.Url.ResolveReference(state.Links[index].Target)
- _, _ = fmt.Fprintf(os.Stdout, "Next: %s\n", u.String())
-
return Navigate(state, u, index, conf)
}
@@ -157,8 +151,6 @@ func Previous(state *BrowserState, conf *Config) error {
u := state.Url.ResolveReference(state.Links[index].Target)
- _, _ = fmt.Fprintf(os.Stdout, "Previous: %s\n", u.String())
-
return Navigate(state, u, index, conf)
}
@@ -182,8 +174,6 @@ func Root(state *BrowserState, tilde bool, conf *Config) error {
u.Path = base
}
- _, _ = fmt.Fprintf(os.Stdout, "Root: %s\n", u.String())
-
return Navigate(state, &u, -1, conf)
}
@@ -200,8 +190,6 @@ func Up(state *BrowserState, conf *Config) error {
u.Path = u.Path[:strings.LastIndex(u.Path, "/")+1]
- _, _ = fmt.Fprintf(os.Stdout, "Up: %s\n", u.String())
-
return Navigate(state, &u, -1, conf)
}
@@ -211,8 +199,6 @@ func Go(state *BrowserState, dest string, conf *Config) error {
return err
}
- _, _ = fmt.Fprintf(os.Stdout, "Go: %s\n", u.String())
-
return Navigate(state, u, idx, conf)
}
@@ -288,7 +274,11 @@ func parseURL(str string, state *BrowserState, defaultScheme string) (*url.URL,
return u, i, nil
}
-func Print(state *BrowserState) error {
+func print(state *BrowserState) error {
+ if state.Quiet {
+ return nil
+ }
+
if state.Body == nil && state.Modal == nil {
return ErrMustBeOnAPage
}
@@ -300,6 +290,13 @@ func Print(state *BrowserState) error {
return err
}
+func Print(state *BrowserState) error {
+ q := state.Quiet
+ defer func() { state.Quiet = q }()
+ state.Quiet = false
+ return print(state)
+}
+
func Links(state *BrowserState, conf *Config) error {
if state.Links == nil {
return ErrMustBeOnAPage
@@ -389,8 +386,8 @@ func TourCmd(state *BrowserState, args []string, conf *Config) error {
return TourAdd(state, conf, args[1:])
case "show":
return TourShow(state)
- case "set":
- return TourSet(state, args[1])
+ case "select":
+ return TourSelect(state, args[1])
case "next":
return TourNext(state, conf)
case "previous":
@@ -419,23 +416,8 @@ func Pipe(state *BrowserState, cmdStr string) error {
cmd := exec.Command(sh, "-c", cmdStr)
cmd.Stdin = bytes.NewBuffer(state.Body)
- r, w := io.Pipe()
- cmd.Stdout = w
- cmd.Stderr = w
-
- cmd.Start()
-
- wg := &sync.WaitGroup{}
- wg.Add(1)
- var copyErr error
- go func() {
- defer wg.Done()
- _, copyErr = io.Copy(os.Stdout, r)
- }()
-
- waitErr := cmd.Wait()
- _ = w.Close()
- wg.Wait()
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
- return errors.Join(waitErr, copyErr)
+ return cmd.Run()
}