5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 22:50:59 +08:00

Add appType to builds. Update server code to compile

This commit is contained in:
Lea Anthony 2021-01-26 06:40:41 +11:00
parent 02500e0930
commit 83d6dac7cf
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405
4 changed files with 60 additions and 23 deletions

View File

@ -12,8 +12,11 @@ import (
func (a *App) Init() error { func (a *App) Init() error {
// Indicate debug mode // Indicate debug mode
a.debug = true a.debug = true
if a.appType == "desktop" {
// Enable dev tools // Enable dev tools
a.options.DevTools = true a.options.DevTools = true
}
// Set log levels // Set log levels
greeting := flag.String("loglevel", "debug", "Loglevel to use - Trace, Debug, Info, Warning, Error") greeting := flag.String("loglevel", "debug", "Loglevel to use - Trace, Debug, Info, Warning, Error")

View File

@ -17,6 +17,8 @@ import (
// App defines a Wails application structure // App defines a Wails application structure
type App struct { type App struct {
appType string
window *ffenestri.Application window *ffenestri.Application
servicebus *servicebus.ServiceBus servicebus *servicebus.ServiceBus
logger *logger.Logger logger *logger.Logger
@ -80,6 +82,7 @@ func CreateApp(appoptions *options.App) (*App, error) {
window := ffenestri.NewApplicationWithConfig(appoptions, myLogger, menuManager) window := ffenestri.NewApplicationWithConfig(appoptions, myLogger, menuManager)
result := &App{ result := &App{
appType: "desktop",
window: window, window: window,
servicebus: servicebus.New(myLogger), servicebus: servicebus.New(myLogger),
logger: myLogger, logger: myLogger,

View File

@ -3,6 +3,7 @@
package app package app
import ( import (
"github.com/wailsapp/wails/v2/pkg/options"
"os" "os"
"path/filepath" "path/filepath"
@ -10,6 +11,7 @@ import (
"github.com/wailsapp/wails/v2/internal/binding" "github.com/wailsapp/wails/v2/internal/binding"
"github.com/wailsapp/wails/v2/internal/logger" "github.com/wailsapp/wails/v2/internal/logger"
"github.com/wailsapp/wails/v2/internal/messagedispatcher" "github.com/wailsapp/wails/v2/internal/messagedispatcher"
"github.com/wailsapp/wails/v2/internal/runtime"
"github.com/wailsapp/wails/v2/internal/servicebus" "github.com/wailsapp/wails/v2/internal/servicebus"
"github.com/wailsapp/wails/v2/internal/subsystem" "github.com/wailsapp/wails/v2/internal/subsystem"
"github.com/wailsapp/wails/v2/internal/webserver" "github.com/wailsapp/wails/v2/internal/webserver"
@ -17,12 +19,16 @@ import (
// App defines a Wails application structure // App defines a Wails application structure
type App struct { type App struct {
appType string
binding *subsystem.Binding binding *subsystem.Binding
call *subsystem.Call call *subsystem.Call
event *subsystem.Event event *subsystem.Event
log *subsystem.Log log *subsystem.Log
runtime *subsystem.Runtime runtime *subsystem.Runtime
options *options.App
bindings *binding.Bindings bindings *binding.Bindings
logger *logger.Logger logger *logger.Logger
dispatcher *messagedispatcher.Dispatcher dispatcher *messagedispatcher.Dispatcher
@ -30,28 +36,40 @@ type App struct {
webserver *webserver.WebServer webserver *webserver.WebServer
debug bool debug bool
// Application Stores
loglevelStore *runtime.Store
appconfigStore *runtime.Store
// Startup/Shutdown
startupCallback func(*runtime.Runtime)
shutdownCallback func()
} }
// Create App // Create App
func CreateApp(options *Options) *App { func CreateApp(appoptions *options.App) (*App, error) {
options.mergeDefaults()
// We ignore the inputs (for now)
// TODO: Allow logger output override on CLI // Merge default options
myLogger := logger.New(os.Stdout) options.MergeDefaults(appoptions)
myLogger.SetLogLevel(logger.TRACE)
// Set up logger
myLogger := logger.New(appoptions.Logger)
myLogger.SetLogLevel(appoptions.LogLevel)
result := &App{ result := &App{
appType: "server",
bindings: binding.NewBindings(myLogger), bindings: binding.NewBindings(myLogger),
logger: myLogger, logger: myLogger,
servicebus: servicebus.New(myLogger), servicebus: servicebus.New(myLogger),
webserver: webserver.NewWebServer(myLogger), webserver: webserver.NewWebServer(myLogger),
startupCallback: appoptions.Startup,
shutdownCallback: appoptions.Shutdown,
} }
// Initialise app // Initialise app
result.Init() result.Init()
return result return result, nil
} }
// Run the application // Run the application
@ -88,8 +106,21 @@ func (a *App) Run() error {
if debugMode { if debugMode {
a.servicebus.Debug() a.servicebus.Debug()
} }
// Start the runtime
runtime, err := subsystem.NewRuntime(a.servicebus, a.logger, a.startupCallback, a.shutdownCallback)
if err != nil {
return err
}
a.runtime = runtime
a.runtime.Start()
// Application Stores
a.loglevelStore = a.runtime.GoRuntime().Store.New("wails:loglevel", a.options.LogLevel)
a.appconfigStore = a.runtime.GoRuntime().Store.New("wails:appconfig", a.options)
a.servicebus.Start() a.servicebus.Start()
log, err := subsystem.NewLog(a.servicebus, a.logger) log, err := subsystem.NewLog(a.servicebus, a.logger, a.loglevelStore)
if err != nil { if err != nil {
return err return err
} }
@ -102,14 +133,6 @@ func (a *App) Run() error {
a.dispatcher = dispatcher a.dispatcher = dispatcher
a.dispatcher.Start() a.dispatcher.Start()
// Start the runtime
runtime, err := subsystem.NewRuntime(a.servicebus, a.logger)
if err != nil {
return err
}
a.runtime = runtime
a.runtime.Start()
// Start the binding subsystem // Start the binding subsystem
binding, err := subsystem.NewBinding(a.servicebus, a.logger, a.bindings, runtime.GoRuntime()) binding, err := subsystem.NewBinding(a.servicebus, a.logger, a.bindings, runtime.GoRuntime())
if err != nil { if err != nil {
@ -127,7 +150,7 @@ func (a *App) Run() error {
a.event.Start() a.event.Start()
// Start the call subsystem // Start the call subsystem
call, err := subsystem.NewCall(a.servicebus, a.logger, a.bindings.DB()) call, err := subsystem.NewCall(a.servicebus, a.logger, a.bindings.DB(), a.runtime.GoRuntime())
if err != nil { if err != nil {
return err return err
} }

View File

@ -20,6 +20,14 @@ type WebClient struct {
running bool running bool
} }
func (wc *WebClient) SetTrayMenu(trayMenuJSON string) {
wc.logger.Info("Not implemented in server build")
}
func (wc *WebClient) UpdateTrayMenuLabel(trayMenuJSON string) {
wc.logger.Info("Not implemented in server build")
}
func (wc *WebClient) MessageDialog(dialogOptions *dialog.MessageDialog, callbackID string) { func (wc *WebClient) MessageDialog(dialogOptions *dialog.MessageDialog, callbackID string) {
wc.logger.Info("Not implemented in server build") wc.logger.Info("Not implemented in server build")
} }