From 3948c8ca6195bf0f63031d15c1f40b156f6c437c Mon Sep 17 00:00:00 2001 From: Lukas Crepaz Date: Sun, 31 Oct 2021 09:12:22 +0100 Subject: [PATCH] use environment variables to supply the development binary with flags to support CLI arguments in the app --- v2/cmd/wails/internal/commands/dev/dev.go | 14 +++++------- v2/internal/appng/app_dev.go | 27 ++++++++++++----------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/v2/cmd/wails/internal/commands/dev/dev.go b/v2/cmd/wails/internal/commands/dev/dev.go index e9344ea4..d809f3d5 100644 --- a/v2/cmd/wails/internal/commands/dev/dev.go +++ b/v2/cmd/wails/internal/commands/dev/dev.go @@ -462,16 +462,14 @@ func restartApp(buildOptions *build.Options, debugBinaryProcess *process.Process debugBinaryProcess = nil } + args := slicer.StringSlicer{} + + // Set environment variables accordingly + os.Setenv("loglevel", flags.loglevel) + os.Setenv("assetdir", flags.assetDir) + os.Setenv("devserverurl", flags.devServerURL) // Start up new binary with correct args - args := slicer.StringSlicer{} - args.Add("-loglevel", flags.loglevel) - if flags.assetDir != "" { - args.Add("-assetdir", flags.assetDir) - } - if flags.devServerURL != "" { - args.Add("-devserverurl", flags.devServerURL) - } newProcess := process.NewProcess(appBinary, args.AsSlice()...) err = newProcess.Start(exitCodeChannel) if err != nil { diff --git a/v2/internal/appng/app_dev.go b/v2/internal/appng/app_dev.go index cc463bb8..da715a3d 100644 --- a/v2/internal/appng/app_dev.go +++ b/v2/internal/appng/app_dev.go @@ -5,7 +5,9 @@ package appng import ( "context" - "flag" + "os" + "path/filepath" + "github.com/wailsapp/wails/v2/internal/binding" "github.com/wailsapp/wails/v2/internal/frontend" "github.com/wailsapp/wails/v2/internal/frontend/desktop" @@ -19,8 +21,6 @@ import ( "github.com/wailsapp/wails/v2/internal/signal" pkglogger "github.com/wailsapp/wails/v2/pkg/logger" "github.com/wailsapp/wails/v2/pkg/options" - "os" - "path/filepath" ) // App defines a Wails application structure @@ -60,19 +60,20 @@ func CreateApp(appoptions *options.App) (*App, error) { myLogger.SetLogLevel(appoptions.LogLevel) // Check for CLI Flags - assetdir := flag.String("assetdir", "", "Directory to serve assets") - devServerURL := flag.String("devserverurl", "", "URL of development server") - loglevel := flag.String("loglevel", "debug", "Loglevel to use - Trace, Debug, Info, Warning, Error") - flag.Parse() - if devServerURL != nil && *devServerURL != "" { - ctx = context.WithValue(ctx, "devserverurl", *devServerURL) + + assetdir := os.Getenv("assetdir") + devServerURL := os.Getenv("devserverurl") + loglevel := os.Getenv("loglevel") + + if devServerURL != "" { + ctx = context.WithValue(ctx, "devserverurl", devServerURL) } - if assetdir != nil && *assetdir != "" { - ctx = context.WithValue(ctx, "assetdir", *assetdir) + if assetdir != "" { + ctx = context.WithValue(ctx, "assetdir", assetdir) } - if loglevel != nil && *loglevel != "" { - level, err := pkglogger.StringToLogLevel(*loglevel) + if loglevel != "" { + level, err := pkglogger.StringToLogLevel(loglevel) if err != nil { return nil, err }