mirror of
https://github.com/anotherhadi/spilltea.git
synced 2026-05-20 01:32:33 +02:00
check if trufflehog is installed on_start
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
@@ -292,22 +292,19 @@ func pushEntry(L *lua.LState, e db.Entry) *lua.LTable {
|
||||
return t
|
||||
}
|
||||
|
||||
func callHook(p *Plugin, hookName string, args ...lua.LValue) (string, error) {
|
||||
func callHook(p *Plugin, hookName string, args ...lua.LValue) (lua.LValue, error) {
|
||||
fn := p.L.GetGlobal(hookName)
|
||||
if fn == lua.LNil {
|
||||
return "", nil
|
||||
return lua.LNil, nil
|
||||
}
|
||||
if err := p.L.CallByParam(lua.P{
|
||||
Fn: fn,
|
||||
NRet: 1,
|
||||
Protect: true,
|
||||
}, args...); err != nil {
|
||||
return "", err
|
||||
return lua.LNil, err
|
||||
}
|
||||
ret := p.L.Get(-1)
|
||||
p.L.Pop(1)
|
||||
if s, ok := ret.(lua.LString); ok {
|
||||
return string(s), nil
|
||||
}
|
||||
return "", nil
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
+40
-10
@@ -191,17 +191,31 @@ func (m *Manager) TogglePlugin(name string) {
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
disableIfFalse := func(p *Plugin, ret lua.LValue) {
|
||||
if ret == lua.LFalse {
|
||||
p.Enabled = false
|
||||
if m.db != nil {
|
||||
_ = m.db.SavePluginState(p.Name, false, p.ConfigText)
|
||||
}
|
||||
}
|
||||
}
|
||||
if hc.Sync {
|
||||
found.mu.Lock()
|
||||
if _, err := callHook(found, "on_start"); err != nil {
|
||||
ret, err := callHook(found, "on_start")
|
||||
if err != nil {
|
||||
log.Printf("plugin %s on_start: %v", found.Name, err)
|
||||
} else {
|
||||
disableIfFalse(found, ret)
|
||||
}
|
||||
found.mu.Unlock()
|
||||
} else {
|
||||
go func() {
|
||||
found.mu.Lock()
|
||||
if _, err := callHook(found, "on_start"); err != nil {
|
||||
ret, err := callHook(found, "on_start")
|
||||
if err != nil {
|
||||
log.Printf("plugin %s on_start: %v", found.Name, err)
|
||||
} else {
|
||||
disableIfFalse(found, ret)
|
||||
}
|
||||
found.mu.Unlock()
|
||||
}()
|
||||
@@ -264,17 +278,31 @@ func (m *Manager) RunOnStart() {
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
disableIfFalse := func(p *Plugin, ret lua.LValue) {
|
||||
if ret == lua.LFalse {
|
||||
p.Enabled = false
|
||||
if m.db != nil {
|
||||
_ = m.db.SavePluginState(p.Name, false, p.ConfigText)
|
||||
}
|
||||
}
|
||||
}
|
||||
if hc.Sync {
|
||||
p.mu.Lock()
|
||||
if _, err := callHook(p, "on_start"); err != nil {
|
||||
ret, err := callHook(p, "on_start")
|
||||
if err != nil {
|
||||
log.Printf("plugin %s on_start: %v", p.Name, err)
|
||||
} else {
|
||||
disableIfFalse(p, ret)
|
||||
}
|
||||
p.mu.Unlock()
|
||||
} else {
|
||||
go func(p *Plugin) {
|
||||
p.mu.Lock()
|
||||
if _, err := callHook(p, "on_start"); err != nil {
|
||||
ret, err := callHook(p, "on_start")
|
||||
if err != nil {
|
||||
log.Printf("plugin %s on_start: %v", p.Name, err)
|
||||
} else {
|
||||
disableIfFalse(p, ret)
|
||||
}
|
||||
p.mu.Unlock()
|
||||
}(p)
|
||||
@@ -316,11 +344,13 @@ func (m *Manager) runSyncDecisionForPlugins(hookName string, argsFor func(*Plugi
|
||||
log.Printf("plugin %s %s: %v", p.Name, hookName, err)
|
||||
continue
|
||||
}
|
||||
switch result {
|
||||
case "drop":
|
||||
return intercept.Drop
|
||||
case "forward":
|
||||
return intercept.Forward
|
||||
if s, ok := result.(lua.LString); ok {
|
||||
switch string(s) {
|
||||
case "drop":
|
||||
return intercept.Drop
|
||||
case "forward":
|
||||
return intercept.Forward
|
||||
}
|
||||
}
|
||||
}
|
||||
return intercept.Intercept
|
||||
@@ -388,7 +418,7 @@ func (m *Manager) RunSyncOnHistoryEntry(e db.Entry) bool {
|
||||
log.Printf("plugin %s on_history_entry: %v", p.Name, err)
|
||||
continue
|
||||
}
|
||||
if result == "skip" {
|
||||
if s, ok := result.(lua.LString); ok && string(s) == "skip" {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user