Awesome
allot
allot is a small Golang
library to match and parse commands with pre-defined strings. For example use allot to define a list of commands your CLI application or Slackbot supports and check if incoming requests are matching your commands.
The allot library supports placeholders and regular expressions for parameter matching and parsing.
Usage
cmd := allot.NewCommand("revert <commits:integer> commits on <project:string> at (stage|prod)")
match, err := cmd.Match("revert 12 commits on example at prod")
if (err != nil)
commits, _ = match.Integer("commits")
project, _ = match.String("project")
env, _ = match.Match(2)
fmt.Printf("Revert \"%d\" on \"%s\" at \"%s\"", commits, project, env)
} else {
fmt.Println("Request did not match command.")
}
Examples
See the hanu Slackbot framework for a usecase for allot: