diff options
| author | tjp <tjp@ctrl-c.club> | 2024-01-10 18:03:32 -0700 |
|---|---|---|
| committer | tjp <tjp@ctrl-c.club> | 2024-01-10 18:04:27 -0700 |
| commit | b173ca9cb2a6d463efda27cf143a81e0d6caedb8 (patch) | |
| tree | f52aca9f7485d421932ad5fa26a63412ca9f85b5 | |
| parent | b7da3dc23d4d2fb6785939de2c0c170fe4ce7e9d (diff) | |
more messages in interface
| -rw-r--r-- | actions.go | 14 | ||||
| -rw-r--r-- | identity.go | 37 | ||||
| -rw-r--r-- | mark.go | 16 | ||||
| -rw-r--r-- | tour.go | 35 |
4 files changed, 79 insertions, 23 deletions
@@ -447,7 +447,7 @@ func parseURL(str string, state *BrowserState, defaultScheme string) (*url.URL, if i, err := strconv.Atoi(str[idx+2:]); err != nil { return nil, -1, ErrInvalidLink } else { - tour, err := findTour(state, str[2:idx]) + _, tour, err := findTour(state, str[2:idx]) if err != nil { return nil, -1, err } @@ -584,6 +584,9 @@ func Outline(state *BrowserState, conf *Config) error { } state.Modal = []byte(formatted) + if len(state.Modal) == 0 { + state.Modal = []byte("No headers on the current page\n") + } return Print(state) } @@ -602,6 +605,9 @@ func Links(state *BrowserState, conf *Config) error { return err } state.Modal = []byte(formatted) + if len(state.Links) == 0 { + state.Modal = []byte("There are no links on the current page\n") + } return Print(state) } @@ -652,7 +658,11 @@ func Save(state *BrowserState, filename string, conf *Config) error { i += 1 } - return os.WriteFile(p, state.Body, 0o644) + if err := os.WriteFile(p, state.Body, 0o644); err != nil { + return err + } + state.Modal = []byte(fmt.Sprintf("Saved page to %s\n", p)) + return Print(state) } func Mark(state *BrowserState, args []string, conf *Config) error { diff --git a/identity.go b/identity.go index 306c6e9..e864171 100644 --- a/identity.go +++ b/identity.go @@ -67,7 +67,12 @@ func IdentityCreate(state *BrowserState, name string) error { return err } state.Identities.ByName[name] = ident - return saveIdentities(state.Identities) + if err := saveIdentities(state.Identities); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Created new identity %s\n", name)) + return Print(state) } func IdentityList(state *BrowserState) error { @@ -102,7 +107,7 @@ func IdentityList(state *BrowserState) error { state.Modal = buf.Bytes() if len(state.Modal) == 0 { - state.Modal = []byte("(empty)\n") + state.Modal = []byte("(no identities)\n") } return Print(state) } @@ -135,7 +140,12 @@ func IdentityDelete(state *BrowserState, name string) error { if err := removeIdentity(name); err != nil { return err } - return saveIdentities(state.Identities) + if err := saveIdentities(state.Identities); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Removed identity %s\n", name)) + return Print(state) } func IdentityUseDomain(state *BrowserState, name string, domain string) error { @@ -159,7 +169,12 @@ func IdentityUseDomain(state *BrowserState, name string, domain string) error { } state.Identities.ByDomain[u.Hostname()] = ident - return saveIdentities(state.Identities) + if err := saveIdentities(state.Identities); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Identity %s will be used across domain %s\n", name, u.Hostname())) + return Print(state) } func IdentityUseFolder(state *BrowserState, name string, domain string) error { @@ -184,7 +199,12 @@ func IdentityUseFolder(state *BrowserState, name string, domain string) error { u.Path = strings.TrimRight(u.Path, "/") state.Identities.ByFolder[u.Hostname()+u.Path] = ident - return saveIdentities(state.Identities) + if err := saveIdentities(state.Identities); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Identity %s will be used within folder %s%s\n", name, u.Hostname(), u.Path)) + return Print(state) } func IdentityUsePage(state *BrowserState, name string, domain string) error { @@ -208,7 +228,12 @@ func IdentityUsePage(state *BrowserState, name string, domain string) error { } state.Identities.ByPage[u.String()] = ident - return saveIdentities(state.Identities) + if err := saveIdentities(state.Identities); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Identity %s will be used on page %s\n", name, u.String())) + return Print(state) } func showIdent(ident *tls.Config) string { @@ -19,7 +19,12 @@ func MarkAdd(state *BrowserState, conf *Config, name, target string) error { } state.Marks[name] = u.String() - return saveMarks(state.Marks) + if err := saveMarks(state.Marks); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Saved mark %s to %s\n", name, u.String())) + return Print(state) } func MarkGo(state *BrowserState, conf *Config, name string) error { @@ -41,7 +46,7 @@ func MarkList(state *BrowserState) error { } state.Modal = buf.Bytes() if len(state.Modal) == 0 { - state.Modal = []byte("(empty)\n") + state.Modal = []byte("(no marks)\n") } return Print(state) } @@ -52,7 +57,12 @@ func MarkDelete(state *BrowserState, name string) error { return err } delete(state.Marks, name) - return saveMarks(state.Marks) + if err := saveMarks(state.Marks); err != nil { + return err + } + + state.Modal = []byte(fmt.Sprintf("Deleted mark %s\n", name)) + return Print(state) } func findMark(state *BrowserState, prefix string) (string, string, error) { @@ -64,7 +64,9 @@ func TourAdd(state *BrowserState, conf *Config, targets []string) error { if state.CurrentTour != &state.DefaultTour { return saveTours(state.NamedTours) } - return nil + + state.Modal = []byte(fmt.Sprintf("Added %d urls to the tour\n", len(newurls))) + return Print(state) } func TourAddNext(state *BrowserState, conf *Config, targets []string) error { @@ -86,7 +88,9 @@ func TourAddNext(state *BrowserState, conf *Config, targets []string) error { if state.CurrentTour != &state.DefaultTour { return saveTours(state.NamedTours) } - return nil + + state.Modal = []byte(fmt.Sprintf("Added %d urls to go next on the tour\n", len(newurls))) + return Print(state) } func TourShow(state *BrowserState) error { @@ -141,7 +145,9 @@ func TourClear(state *BrowserState) error { if state.CurrentTour != &state.DefaultTour { return saveTours(state.NamedTours) } - return nil + + state.Modal = []byte("Tour is cleared\n") + return Print(state) } func TourList(state *BrowserState) error { @@ -180,24 +186,29 @@ func TourGo(state *BrowserState, conf *Config, pos string) error { } func TourSelect(state *BrowserState, name string) error { - tour, err := findTour(state, name) - if err == nil { - state.CurrentTour = tour + tourName, tour, err := findTour(state, name) + if err != nil { + return err } - return err + state.CurrentTour = tour + + state.Modal = []byte(fmt.Sprintf("Tour %s is now active\n", tourName)) + return Print(state) } -func findTour(state *BrowserState, prefix string) (*Tour, error) { +func findTour(state *BrowserState, prefix string) (string, *Tour, error) { if prefix == "" { - return &state.DefaultTour, nil + return "", &state.DefaultTour, nil } found := 0 var value *Tour + var tourName string for name, tour := range state.NamedTours { if strings.HasPrefix(name, prefix) { found += 1 value = tour + tourName = name } } @@ -205,10 +216,10 @@ func findTour(state *BrowserState, prefix string) (*Tour, error) { case 0: tour := &Tour{} state.NamedTours[prefix] = tour - return tour, nil + return "", tour, nil case 1: - return value, nil + return tourName, value, nil default: - return nil, fmt.Errorf("too ambiguous - found %d matching tours", found) + return "", nil, fmt.Errorf("too ambiguous - found %d matching tours", found) } } |
