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:
WithoutPants
2022-03-17 11:33:59 +11:00
committed by GitHub
parent dcee874f59
commit f69bd8a94f
334 changed files with 1845 additions and 1525 deletions

View File

@@ -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
}

View File

@@ -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)
}

View File

@@ -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
}

View File

@@ -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)
}