123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package events_stream
- import (
- "github.com/bettercap/bettercap/session"
- "github.com/evilsocket/islazy/tui"
- )
- func (mod *EventsStream) addTrigger(tag string, command string) error {
- if err, id := mod.triggerList.Add(tag, command); err != nil {
- return err
- } else {
- mod.Info("trigger for event %s added with identifier '%s'", tui.Green(tag), tui.Bold(id))
- }
- return nil
- }
- func (mod *EventsStream) clearTrigger(id string) error {
- if err := mod.triggerList.Del(id); err != nil {
- return err
- }
- return nil
- }
- func (mod *EventsStream) showTriggers() error {
- colNames := []string{
- "ID",
- "Event",
- "Action",
- }
- rows := [][]string{}
- mod.triggerList.Each(func(id string, t Trigger) {
- rows = append(rows, []string{
- tui.Bold(id),
- tui.Green(t.For),
- t.Action,
- })
- })
- if len(rows) > 0 {
- tui.Table(mod.Session.Events.Stdout, colNames, rows)
- mod.Session.Refresh()
- }
- return nil
- }
- func (mod *EventsStream) dispatchTriggers(e session.Event) {
- if id, cmds, err, found := mod.triggerList.Dispatch(e); err != nil {
- mod.Error("error while dispatching event %s: %v", e.Tag, err)
- } else if found {
- mod.Debug("running trigger %s (cmds:'%s') for event %v", id, cmds, e)
- for _, cmd := range session.ParseCommands(cmds) {
- if err := mod.Session.Run(cmd); err != nil {
- mod.Error("%s", err.Error())
- }
- }
- }
- }
|