mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Restructure go project (#2356)
* Move main to cmd * Move api to internal * Move logger and manager to internal * Move shell hiding code to separate package * Decouple job from desktop and utils * Decouple session from config * Move static into internal * Decouple config from dlna * Move desktop to internal * Move dlna to internal * Decouple remaining packages from config * Move config into internal * Move jsonschema and paths to models * Make ffmpeg functions private * Move file utility methods into fsutil package * Move symwalk into fsutil * Move single-use util functions into client package * Move slice functions to separate packages * Add env var to suppress windowsgui arg * Move hash functions into separate package * Move identify to internal * Move autotag to internal * Touch UI when generating backend
This commit is contained in:
@@ -126,20 +126,3 @@ func LevelFromName(name string) *Level {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// DetectLogLevel returns the Level and the logging string for a provided line
|
||||
// of plugin output. It parses the string for logging control characters and
|
||||
// determines the log level, if present. If not present, the plugin output
|
||||
// is returned unchanged with a nil Level.
|
||||
func DetectLogLevel(line string) (*Level, string) {
|
||||
var level *logger.PluginLogLevel
|
||||
level, line = logger.DetectLogLevel(line)
|
||||
|
||||
if level == nil {
|
||||
return nil, line
|
||||
}
|
||||
|
||||
return &Level{
|
||||
level,
|
||||
}, line
|
||||
}
|
||||
|
||||
@@ -17,10 +17,11 @@ func (t *pluginTask) handlePluginStderr(name string, pluginOutputReader io.ReadC
|
||||
const pluginPrefix = "[Plugin / %s] "
|
||||
|
||||
lgr := logger.PluginLogger{
|
||||
Logger: logger.Logger,
|
||||
Prefix: fmt.Sprintf(pluginPrefix, name),
|
||||
DefaultLogLevel: logLevel,
|
||||
ProgressChan: t.progress,
|
||||
}
|
||||
|
||||
lgr.HandlePluginStdErr(pluginOutputReader)
|
||||
lgr.ReadLogMessages(pluginOutputReader)
|
||||
}
|
||||
|
||||
@@ -16,16 +16,23 @@ import (
|
||||
"strconv"
|
||||
|
||||
"github.com/stashapp/stash/pkg/logger"
|
||||
"github.com/stashapp/stash/pkg/manager/config"
|
||||
"github.com/stashapp/stash/pkg/models"
|
||||
"github.com/stashapp/stash/pkg/plugin/common"
|
||||
"github.com/stashapp/stash/pkg/session"
|
||||
"github.com/stashapp/stash/pkg/utils"
|
||||
"github.com/stashapp/stash/pkg/sliceutil/stringslice"
|
||||
)
|
||||
|
||||
type ServerConfig interface {
|
||||
GetHost() string
|
||||
GetPort() int
|
||||
GetConfigPath() string
|
||||
HasTLSConfig() bool
|
||||
GetPluginsPath() string
|
||||
}
|
||||
|
||||
// Cache stores plugin details.
|
||||
type Cache struct {
|
||||
config *config.Instance
|
||||
config ServerConfig
|
||||
plugins []Config
|
||||
sessionStore *session.Store
|
||||
gqlHandler http.Handler
|
||||
@@ -38,7 +45,7 @@ type Cache struct {
|
||||
//
|
||||
// Does not load plugins. Plugins will need to be
|
||||
// loaded explicitly using ReloadPlugins.
|
||||
func NewCache(config *config.Instance) *Cache {
|
||||
func NewCache(config ServerConfig) *Cache {
|
||||
return &Cache{
|
||||
config: config,
|
||||
}
|
||||
@@ -196,7 +203,7 @@ func (c Cache) executePostHooks(ctx context.Context, hookType HookTriggerEnum, h
|
||||
hooks := p.getHooks(hookType)
|
||||
// don't revisit a plugin we've already visited
|
||||
// only log if there's hooks that we're skipping
|
||||
if len(hooks) > 0 && utils.StrInclude(visitedPlugins, p.id) {
|
||||
if len(hooks) > 0 && stringslice.StrInclude(visitedPlugins, p.id) {
|
||||
logger.Debugf("plugin ID '%s' already triggered, not re-triggering", p.id)
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"os/exec"
|
||||
"sync"
|
||||
|
||||
"github.com/stashapp/stash/pkg/desktop"
|
||||
stashExec "github.com/stashapp/stash/pkg/exec"
|
||||
"github.com/stashapp/stash/pkg/logger"
|
||||
"github.com/stashapp/stash/pkg/plugin/common"
|
||||
)
|
||||
@@ -60,7 +60,7 @@ func (t *rawPluginTask) Start() error {
|
||||
}
|
||||
}
|
||||
|
||||
cmd := exec.Command(command[0], command[1:]...)
|
||||
cmd := stashExec.Command(command[0], command[1:]...)
|
||||
|
||||
stdin, err := cmd.StdinPipe()
|
||||
if err != nil {
|
||||
@@ -88,7 +88,6 @@ func (t *rawPluginTask) Start() error {
|
||||
|
||||
t.waitGroup.Add(1)
|
||||
t.done = make(chan bool, 1)
|
||||
desktop.HideExecShell(cmd)
|
||||
if err = cmd.Start(); err != nil {
|
||||
return fmt.Errorf("error running plugin: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user