From 70d32441c0a8242f2282b574694ee53c4e6267ca Mon Sep 17 00:00:00 2001 From: Mihail Slobodyanuk Date: Sat, 10 Dec 2022 11:10:59 +0200 Subject: [PATCH] Added mest-ui start options and ability to enable debug console --- build | 4 ---- contrib/ui/mesh-ui/webview.go | 23 +++++++++++++++++++++++ contrib/ui/mesh-ui/webview_other.go | 3 +++ contrib/ui/mesh-ui/webview_windows.go | 16 ++++++++++++++++ go.mod | 1 + go.sum | 2 ++ 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/build b/build index 1da3af43..10e9c7b6 100755 --- a/build +++ b/build @@ -58,10 +58,6 @@ build_meshctl() { } build_mesh_ui() { - #only UI should be built with windowsgui flag - if [ "$GOOS" == "windows" ]; then - LDFLAGS2=" -H windowsgui" - fi buildbin ./contrib/ui/mesh-ui } diff --git a/contrib/ui/mesh-ui/webview.go b/contrib/ui/mesh-ui/webview.go index 001aade6..e3cd0927 100755 --- a/contrib/ui/mesh-ui/webview.go +++ b/contrib/ui/mesh-ui/webview.go @@ -18,9 +18,32 @@ import ( "github.com/webview/webview" "github.com/RiV-chain/RiV-mesh/src/admin" + "github.com/docopt/docopt-go" ) +var confui struct { + Console bool `docopt:"-c,--console"` +} + func main() { + usage := `Graphical interface for RiV mesh. + +Usage: + mesh-ui + mesh-ui -c | --console + mesh-ui -h | --help + mesh-ui -v | --version + +Options: + -c --console Show debug console window. + -h --help Show this screen. + -v --version Show version.` + + opts, _ := docopt.ParseArgs(usage, os.Args[1:], "0.0.1") + opts.Bind(&confui) + if !confui.Console { + Console(false) + } debug := true w := webview.New(debug) defer w.Destroy() diff --git a/contrib/ui/mesh-ui/webview_other.go b/contrib/ui/mesh-ui/webview_other.go index 782e0954..099b4f84 100644 --- a/contrib/ui/mesh-ui/webview_other.go +++ b/contrib/ui/mesh-ui/webview_other.go @@ -30,3 +30,6 @@ func run_command_with_arg(command string, arg string) []byte { } return out } + +func Console(show bool) { +} diff --git a/contrib/ui/mesh-ui/webview_windows.go b/contrib/ui/mesh-ui/webview_windows.go index 2b0fd730..4682ca6a 100755 --- a/contrib/ui/mesh-ui/webview_windows.go +++ b/contrib/ui/mesh-ui/webview_windows.go @@ -33,3 +33,19 @@ func run_command_with_arg(command string, arg string) []byte { } return out } + +func Console(show bool) { + var getWin = syscall.NewLazyDLL("kernel32.dll").NewProc("GetConsoleWindow") + var showWin = syscall.NewLazyDLL("user32.dll").NewProc("ShowWindow") + hwnd, _, _ := getWin.Call() + if hwnd == 0 { + return + } + if show { + var SW_RESTORE uintptr = 9 + showWin.Call(hwnd, SW_RESTORE) + } else { + var SW_HIDE uintptr = 0 + showWin.Call(hwnd, SW_HIDE) + } +} diff --git a/go.mod b/go.mod index ef843c08..ee1d4d0d 100644 --- a/go.mod +++ b/go.mod @@ -23,6 +23,7 @@ require ( ) require ( + github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect github.com/getlantern/ema v0.0.0-20190620044903-5943d28f40e4 // indirect diff --git a/go.sum b/go.sum index 30f678f1..4c41cad8 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,8 @@ github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/o github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=