Added command for user purging of certificates, and fixed multiword search

This commit is contained in:
sloumdrone 2019-09-28 16:29:42 -07:00
parent bd004d74c2
commit 2fd2d6c722
3 changed files with 36 additions and 8 deletions

View File

@ -279,6 +279,8 @@ func (c *client) simpleCommand(action string) {
case "B", "BOOKMARKS":
c.BookMarks.ToggleOpen()
c.Draw()
case "R", "REFRESH":
// TODO build refresh code
case "SEARCH":
c.search("", "", "?")
case "HELP", "?":
@ -299,8 +301,27 @@ func (c *client) doCommand(action string, values []string) {
switch action {
case "CHECK", "C":
c.displayConfigValue(values[0])
case "PURGE", "P":
err := c.Certs.Purge(values[0])
if err != nil {
c.SetMessage(err.Error(), true)
c.DrawMessage()
return
}
if values[0] == "*" {
c.SetMessage("All certificates have been purged", false)
c.DrawMessage()
} else {
c.SetMessage(fmt.Sprintf("The certificate for %q has been purged", strings.ToLower(values[0])), false)
c.DrawMessage()
}
err = saveConfig()
if err != nil {
c.SetMessage("Error saving purge to file", true)
c.DrawMessage()
}
case "SEARCH":
c.search(strings.Join(values, " "), "", "")
c.search(values[0], "", "")
case "WRITE", "W":
if values[0] == "." {
values[0] = c.PageState.History[c.PageState.Position].Location.Full
@ -360,7 +381,8 @@ func (c *client) doCommandAs(action string, values []string) {
if c.BookMarks.IsOpen {
c.Draw()
}
case "SEARCH":
c.search(strings.Join(values, " "), "", "")
case "WRITE", "W":
u, err := MakeUrl(values[0])
if err != nil {

View File

@ -68,9 +68,11 @@ func (s *scanner) scanText() Token {
capInput := strings.ToUpper(buf.String())
switch capInput {
case "DELETE", "ADD", "WRITE", "SET", "RECALL", "R", "SEARCH",
"W", "A", "D", "S", "Q", "QUIT", "B", "BOOKMARKS", "H",
"HOME", "?", "HELP", "C", "CHECK":
case "D", "DELETE", "A", "ADD","W", "WRITE",
"S", "SET", "R", "REFRESH", "SEARCH",
"Q", "QUIT", "B", "BOOKMARKS", "H",
"HOME", "?", "HELP", "C", "CHECK",
"P", "PURGE":
return Token{Action, capInput}
}

View File

@ -30,12 +30,16 @@ type TofuDigest struct {
// + + + R E C E I V E R S + + + \\
//--------------------------------------------------\\
func (t *TofuDigest) Remove(host string) error {
if _, ok := t.certs[strings.ToLower(host)]; ok {
func (t *TofuDigest) Purge(host string) error {
host = strings.ToLower(host)
if host == "*" {
t.certs = make(map[string]string)
return nil
} else if _, ok := t.certs[strings.ToLower(host)]; ok {
delete(t.certs, host)
return nil
}
return fmt.Errorf("Invalid host")
return fmt.Errorf("Invalid host %q", host)
}
func (t *TofuDigest) Add(host, hash string) {