Files
Frodding/plugin/plugin.go
cubexteam 41ff5bbc90 fix: folder perms 0644 → 0755
fix: folder perms 0644 → 0755
2026-03-04 18:34:57 +03:00

43 lines
799 B
Go

package plugin
import (
"context"
"fmt"
"os"
)
type Impl interface {
Name() string
Setup(p *Plugin) error
Run(ctx context.Context, p *Plugin)
}
type Logger interface {
Infof(format string, args ...any)
Warnf(format string, args ...any)
Errorf(format string, args ...any)
Debugf(format string, args ...any)
}
type Plugin struct {
impl Impl
logger Logger
directory string
dirOnce struct {
done bool
}
}
func (p *Plugin) Impl() Impl { return p.impl }
func (p *Plugin) Logger() Logger { return p.logger }
func (p *Plugin) DataFolder() string {
if !p.dirOnce.done {
if err := os.MkdirAll(p.directory, 0o755); err != nil {
panic(fmt.Sprintf("plugin %s: failed to create data folder: %v", p.impl.Name(), err))
}
p.dirOnce.done = true
}
return p.directory
}