node build fixed

This commit is contained in:
ra_ma
2025-09-20 14:08:38 +01:00
parent c6ebbe069d
commit 3d298fa434
1516 changed files with 535727 additions and 2 deletions

View File

@@ -0,0 +1,112 @@
package server
import (
"embed"
"fmt"
golog "log"
"os"
"path/filepath"
"seanime/internal/core"
"seanime/internal/cron"
"seanime/internal/handlers"
"seanime/internal/updater"
"seanime/internal/util"
"seanime/internal/util/crashlog"
"time"
"github.com/rs/zerolog/log"
)
func startApp(embeddedLogo []byte) (*core.App, core.SeanimeFlags, *updater.SelfUpdater) {
// Print the header
core.PrintHeader()
// Get the flags
flags := core.GetSeanimeFlags()
selfupdater := updater.NewSelfUpdater()
// Create the app instance
app := core.NewApp(&core.ConfigOptions{
DataDir: flags.DataDir,
EmbeddedLogo: embeddedLogo,
IsDesktopSidecar: flags.IsDesktopSidecar,
}, selfupdater)
// Create log file
logFilePath := filepath.Join(app.Config.Logs.Dir, fmt.Sprintf("seanime-%s.log", time.Now().Format("2006-01-02_15-04-05")))
// Open the log file
logFile, _ := os.OpenFile(
logFilePath,
os.O_APPEND|os.O_CREATE|os.O_WRONLY,
0664,
)
log.Logger = *app.Logger
golog.SetOutput(app.Logger)
util.SetupLoggerSignalHandling(logFile)
crashlog.GlobalCrashLogger.SetLogDir(app.Config.Logs.Dir)
app.OnFlushLogs = func() {
util.WriteGlobalLogBufferToFile(logFile)
logFile.Sync()
}
if !flags.Update {
go func() {
for {
util.WriteGlobalLogBufferToFile(logFile)
time.Sleep(5 * time.Second)
}
}()
}
return app, flags, selfupdater
}
func startAppLoop(webFS *embed.FS, app *core.App, flags core.SeanimeFlags, selfupdater *updater.SelfUpdater) {
updateMode := flags.Update
appLoop:
for {
switch updateMode {
case true:
log.Log().Msg("Running in update mode")
// Print the header
core.PrintHeader()
// Run the self-updater
err := selfupdater.Run()
if err != nil {
}
log.Log().Msg("Shutting down in 10 seconds...")
time.Sleep(10 * time.Second)
break appLoop
case false:
// Create the echo app instance
echoApp := core.NewEchoApp(app, webFS)
// Initialize the routes
handlers.InitRoutes(app, echoApp)
// Run the server
core.RunEchoServer(app, echoApp)
// Run the jobs in the background
cron.RunJobs(app)
select {
case <-selfupdater.Started():
app.Cleanup()
updateMode = true
break
}
}
continue
}
}